Wenn das Skript ausgeführt wird, ist das document
-Element noch nicht verfügbar, da das script
selbst im head
steht. Während es eine gültige Lösung ist, das script
im head
zu belassen und es auf das Ereignis DOMContentLoaded
zu rendern, ist es sogar besser, Ihr script
ganz unten im body
zu platzieren und das Wurzelkomponente in ein div
vorher zu rendern, so wie hier:
und im bundle.js
folgendes aufrufen:
React.render(, document.getElementById('root'));
Sie sollten immer in ein verschachteltes div
rendern, anstatt in den body
. Ansonsten können allerlei Drittanbietercode (Google Font Loader, Browser-Plugins, was auch immer) den body
-DOM-Knoten ändern, wenn React es nicht erwartet, und seltsame Fehler verursachen, die sehr schwer zu verfolgen und zu debuggen sind. Lesen Sie mehr über dieses Problem.
Das Gute daran, das script
unten zu platzieren, ist, dass es das Rendern nicht blockiert, bis das Skript geladen ist, falls Sie das React-Server-Rendering zu Ihrem Projekt hinzufügen.
Aktualisierung: (07. Oktober 2015 | v0.14)
React.render
ist veraltet, verwenden Sie ReactDOM.render
stattdessen.
Beispiel:
import ReactDOM from 'react-dom';
ReactDOM.render(, document.getElementById('root'));