Допустим, в моем HTML-файле есть:
<div id = "root"></div>
Чтобы отобразить элемент React в этом узле DOM, я передаю его в ReactDOM.render ():
const element = <h1>Hello, world</h1>;
ReactDOM.render(element, document.getElementById('root'));
Но что, если этот узел создается программно, после того, как, скажем, пользователь входит в систему, поэтому его рендеринг задерживается. Для иллюстрации я пытаюсь сделать что-то вроде:
<script type = "text/javascript">
setTimeout(function(){
document.body.innerHTML += '<div id = "root" data-user = "1"></div>'
}, 3000)
</script>
Это не работает. ReactDOM ничего не находит на первом проходе, когда ищет document.getElementById('root'), и поэтому ничего не отображает. Есть ли способ сделать это динамически?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Попробуй это:
<html>
<head>
<title>Parcel Sandbox</title>
<meta charset = "UTF-8" />
</head>
<body id = "body">
<script src = "https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script crossorigin src = "https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src = "https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script type = "text/babel">
document.getElementById("body").innerHTML = `
<div id = "app"></div>
`;
const name = 'Josh Perez';
const element = <h1>Hello, {name}</h1>;
ReactDOM.render( element, document.getElementById('app') );
</script>
</body>
</html>
Рассматривали ли вы загрузку файлов JS после рендеринга DOM? Добавляете JS в конец страницы?