2017-06-06 2 views
1

Hallo ich diese Störung erhalte:React.js nicht erfasste Fehler: _registerComponent (...): Zielbehälter ist kein DOM-Element

main.js:808 Uncaught Error: _registerComponent(...): Target container is not a DOM element.

ich this question besucht haben, aber ich kann nicht herausfinden, was stimmt nicht mit dem, was ich mache. Hier

ist der Code Ich habe jetzt:

routes.js:

export default ( 
    <Route path="/" component={App}> 
    <IndexRoute component={HomePage} /> 
    </Route> 
); 

app.js

const store = configureStore(); 

render(
    <Provider store={store}> 
    <Router history={browserHistory} routes={routes} /> 
    </Provider>, 
    document.getElementById('app') 
); 

homepage.js

class HomePage extends React.Component { 
    render() { 
    return (
     <div id="app"> 
     Hello 
     </div> 
    ); 
    } 
} 

export default HomePage; 

Ich denke, dass mir etwas leicht fehlt, aber ich bin mir nicht sicher, was es ist. Ich habe versucht, meinen Code zu ändern, um den Antworten dieser anderen Frage zu entsprechen, aber es hat nicht funktioniert. Vielen Dank für jede Hilfe

+0

Wenn ich nicht falsch liege, versuchen Sie, Komponente App.js innerhalb von HomePage zu rendern, in diesem Fall tun Sie es falsch. Das TargetDOM-Element muss in HTML sein. –

Antwort

0

Der Fehler besagt, dass document.getElementById('app') Operation keinen entsprechenden HTML-Knoten im Seitendokument gefunden. Sie müssen ein <div id="app"></div> direkt in Ihrem index.html erstellen, damit document.getElementById('app') es finden kann. Ihr <div id="app"> in HomePage Container ist nutzlos, da er während der React-App-Initialisierung im DOM nicht verfügbar ist.

auch sicher, dass Ihre <script> mit gebündelten nach<div id="app"></div> (injizieren, dass <script> bis zum Ende des body Tages sicher zu sein) Reagieren App injizieren.

Verwandte Themen