Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将react组件渲染为单个DOM元素_Javascript_Dom_Reactjs - Fatal编程技术网

Javascript 将react组件渲染为单个DOM元素

Javascript 将react组件渲染为单个DOM元素,javascript,dom,reactjs,Javascript,Dom,Reactjs,呈现React组件时,必须将该组件放置到文档中已存在的DOM元素中,例如: React.render(<MyComponent />, document.findElementById('container')); React.render(,document.findElementById('container'); 但是,组件的渲染函数必须始终返回单个节点,从而产生以下DOM结构: <div id='container'> <div id='myCom

呈现React组件时,必须将该组件放置到文档中已存在的DOM元素中,例如:

React.render(<MyComponent />, document.findElementById('container'));
React.render(,document.findElementById('container');
但是,组件的渲染函数必须始终返回单个节点,从而产生以下DOM结构:

<div id='container'>
   <div id='myComponent'>
      <!-- Stuff in the component -->
   </div>
</div>

这会创建不必要的DOM元素,因为如果外部容器对于文档的结构没有附加值,那么它也可以被释放

目前,无法将多个组件渲染到同一父级(例如主体):

render()替换传入的容器节点的内容。将来,可以在不覆盖现有子节点的情况下将组件插入现有DOM节点


是否有其他方法可以在没有任何不必要的父节点的情况下渲染组件?提前谢谢

别无选择。您总是需要一个根节点

你为什么不摆脱cointainer,把你的组件直接渲染到主体上呢

React.render(<MyComponent />, document.getElementsByTagName('body')[0]);
React.render(,document.getElementsByTagName('body')[0]);

假设我有两个组件,那么我是否总是需要一些父组件来容纳这两个组件?既然我不能把两者都渲染到身体上,这真的应该得到支持。我正在考虑一个解决方案,创建一个节点,渲染到其中,分离它的子元素并使用它。