DOM еще не загружен, когда React пытается зарегистрировать компонент, который запускается в window.onload или window.addHtml

Программисты Html
Ответить
Anonymous
 DOM еще не загружен, когда React пытается зарегистрировать компонент, который запускается в window.onload или window.add

Сообщение Anonymous »

У меня есть тег сценария в теге head html. Сценарий должен добавить прослушиватель событий после загрузки остальной части файла index.html. Поэтому до этого ничего не должно запускаться. Это почти то же самое, что добавление тега скрипта в конец тела, за исключением того, что браузер читает JavaScript и вызывает небольшую блокировку рендеринга.

index.html

Код: Выделить всё


//meta stuff






Javascript is not enabled!



Вот сообщение об ошибке консоли, которое я получаю от React:

Код: Выделить всё

Uncaught Error: _registerComponent(...): Target container is not a DOM element.
at invariant (react-dom.js:18118)
at Object._renderNewRootComponent (react-dom.js:9978)
at Object._renderSubtreeIntoContainer (react-dom.js:10069)
at Object.render (react-dom.js:10090)
at App (webapp.js:formatted:28)
Странно то, что функция App() запускается во время window.onload или window.addEventListener('load'). Я использовал это раньше на своем личном веб-сайте, но у меня была отсрочка и асинхронность в теге сценария, поэтому, возможно, именно поэтому он всегда срабатывал правильно.

webapp.js

Код: Выделить всё

...
function App() {
console.log('App loading...');
const reactroot = document.getElementById('root');
var app = React.createElement(WebApp, null);
ReactDOM.render( app, reactroot);
}
window.onload = App;
Если кто-то предложит использовать document.ready(), я стараюсь не полагаться на jQuery. Я также хочу использовать это для производственного веб-сайта, а не только для своего личного портфолио. Поэтому я не могу рассчитывать на добавление defer/async в тег скрипта.

Связанные темы:

Подробнее здесь: https://stackoverflow.com/questions/461 ... s-in-windo
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»