Dom 如果找不到,有没有办法告诉react动态创建div

Dom 如果找不到,有没有办法告诉react动态创建div,dom,reactjs,dynamic-html,virtual-dom,Dom,Reactjs,Dynamic Html,Virtual Dom,新的反应,我想知道是否有任何工作可以绕过这个错误: _registerComponent…:目标容器不是DOM元素 编辑我试图做的是: 我有一个反应函数,如: ReactDOM.renderReact.createElementsomeFunction,{data:someData},document.getElementById'someID' 这将生成一个dom,如: 这给了我: _registerComponent…:目标容器不是DOM元素 但我可以看到它出现在DOM中 那么如何访问这个虚

新的反应,我想知道是否有任何工作可以绕过这个错误:

_registerComponent…:目标容器不是DOM元素

编辑我试图做的是:

我有一个反应函数,如:

ReactDOM.renderReact.createElementsomeFunction,{data:someData},document.getElementById'someID'

这将生成一个dom,如:

这给了我:

_registerComponent…:目标容器不是DOM元素

但我可以看到它出现在DOM中

那么如何访问这个虚拟dom div呢?然后在里面装一些东西


附言:我知道一种使用危险的HTML的方法,但正在寻找一种更好的方法,那就是javascript。是的,您可以创建div。您只需在某个dom元素上注册一次即可加载所有应用程序。您应该避免在加载React应用程序后触摸DOM,因为React以非常有效的方式进行操作,但这并不意味着不可能触摸它。在加载React应用程序之前,如果您必须检查应用程序容器是否存在,您可以使用以下代码:

if (!document.getElementById("app")) {    
    var div = document.createElement("div");
    div.id = 'app';
    document.body.appendChild(div);
}

ReactDOM.render(<App />, document.getElementById('app'));

它只是javascript。是的,您可以创建div。您只需在某个dom元素上注册一次即可加载所有应用程序。您应该避免在加载React应用程序后触摸DOM,因为React以非常有效的方式进行操作,但这并不意味着不可能触摸它。在加载React应用程序之前,如果您必须检查应用程序容器是否存在,您可以使用以下代码:

if (!document.getElementById("app")) {    
    var div = document.createElement("div");
    div.id = 'app';
    document.body.appendChild(div);
}

ReactDOM.render(<App />, document.getElementById('app'));

谢谢你的回答,太好了!但这不是我要找的,可能是我没有正确表达问题,请查看编辑后的问题,这真的很奇怪,您使用React创建dom,然后使用React重新创建另一部分,并在另一个应用程序上安装一个React应用程序,而不是作为同一应用程序的组件构建。不管你为什么有这样疯狂的情况,我的答案都是一样的。这只是javascript,你可以使用我提供的同一个例子,不明白为什么你不能理解这是一个完整的应用程序…它只是UI组件…我调用了一个函数ReactDOM.renderReact.createElementsomeFunction,{data:someData},document.getElementById'someID'这生成了一些带有div id='someDiv1'的html,在调用我的someFunction后,我正在调用React.createElementsomeOtherFunction,。。。。,document.getElelmentByIdsomeDiv1这表示找不到somediv1如果我尝试了您的方法,我可以将其附加到body或类似的对象上,但不能附加到react创建的虚拟div上。为什么需要附加到react的div上,只需在react内执行即可。此时div可能不存在,因为react只是加载。要测试这一理论,只需使用setTimeoutfunction{/*您的第二个应用程序装载代码*/},1000来结束第二次调用;谢谢你的回答,太好了!但这不是我要找的,可能是我没有正确表达问题,请查看编辑后的问题,这真的很奇怪,您使用React创建dom,然后使用React重新创建另一部分,并在另一个应用程序上安装一个React应用程序,而不是作为同一应用程序的组件构建。不管你为什么有这样疯狂的情况,我的答案都是一样的。这只是javascript,你可以使用我提供的同一个例子,不明白为什么你不能理解这是一个完整的应用程序…它只是UI组件…我调用了一个函数ReactDOM.renderReact.createElementsomeFunction,{data:someData},document.getElementById'someID'这生成了一些带有div id='someDiv1'的html,在调用我的someFunction后,我正在调用React.createElementsomeOtherFunction,。。。。,document.getElelmentByIdsomeDiv1这表示找不到somediv1如果我尝试了您的方法,我可以将其附加到body或类似的对象上,但不能附加到react创建的虚拟div上。为什么需要附加到react的div上,只需在react内执行即可。此时div可能不存在,因为react只是加载。要测试这一理论,只需使用setTimeoutfunction{/*您的第二个应用程序装载代码*/},1000来结束第二次调用;
if (!document.getElementById("app")) {    
    var div = document.createElement("div");
    div.id = 'app';
    document.body.appendChild(div);
}

ReactDOM.render(<App />, document.getElementById('app'));