Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Reactjs 无法多次渲染React组件_Reactjs - Fatal编程技术网

Reactjs 无法多次渲染React组件

Reactjs 无法多次渲染React组件,reactjs,Reactjs,为什么我不能在#root上渲染这两个组件 ReactDOM.render(,window.root); ReactDOM.render(,window.root); 这只会将第二个按钮添加到#root 从“React”导入React; 从“react dom”导入react dom; 常量按钮=({text,styleClass,onClick})=>{ 返回( onClick(e)} onToggle={e=>onToggle(e)} className={'btn${styleClass}

为什么我不能在
#root
上渲染这两个组件

ReactDOM.render(,window.root);
ReactDOM.render(,window.root);
这只会将第二个按钮添加到
#root

从“React”导入React;
从“react dom”导入react dom;
常量按钮=({text,styleClass,onClick})=>{
返回(
onClick(e)}
onToggle={e=>onToggle(e)}
className={'btn${styleClass}}
>
{text}
);
};
ReactDOM.render(,window.root);
ReactDOM.render(,window.root);

因为它基本上显示了您要求它渲染的最后一个组件

请查看文档:

ReactDOM.render(元素,容器[,回调])
呈现React元素 到提供的容器中的DOM中,并返回对 组件(或无状态组件返回null)

如果React元素先前已呈现到容器中,则这将执行 对其进行更新,并仅在必要时对DOM进行修改以反映 最新的反应元素


因为它基本上显示了您要求它渲染的最后一个组件

请查看文档:

ReactDOM.render(元素,容器[,回调])
呈现React元素 到提供的容器中的DOM中,并返回对 组件(或无状态组件返回null)

如果React元素先前已呈现到容器中,则这将执行 对其进行更新,并仅在必要时对DOM进行修改以反映 最新的反应元素


第二个会覆盖第一个呈现的dom

ReactDOM.render(
    <>
        <Button text="Add"/>
        <Button text="Add"/>
    <\>,
    window.root
);
ReactDOM.render(
,
window.root
);

这将呈现2个按钮,而第二个按钮将覆盖第一个呈现的dom

ReactDOM.render(
    <>
        <Button text="Add"/>
        <Button text="Add"/>
    <\>,
    window.root
);
ReactDOM.render(
,
window.root
);
这将呈现2个按钮

为什么我不能在#根上渲染这两个组件

因为后一个按钮覆盖了前一个按钮


如果要渲染两个按钮,可以执行以下操作:

从“React”导入React;
从“react dom”导入react dom;
常量按钮=({text,styleClass,onClick})=>{
返回(
onClick(e)}
onToggle={e=>onToggle(e)}
className={'btn${styleClass}}
>
{text}
);
};
ReactDOM.render(
,
window.root//或document.getElementById('root'))
); 

一个小的工作示例

const按钮=({text})=>{text}
ReactDOM.render(
,
document.getElementById('root'))
)

为什么我不能在#根上渲染这两个组件

因为后一个按钮覆盖了前一个按钮


如果要渲染两个按钮,可以执行以下操作:

从“React”导入React;
从“react dom”导入react dom;
常量按钮=({text,styleClass,onClick})=>{
返回(
onClick(e)}
onToggle={e=>onToggle(e)}
className={'btn${styleClass}}
>
{text}
);
};
ReactDOM.render(
,
window.root//或document.getElementById('root'))
); 

一个小的工作示例

const按钮=({text})=>{text}
ReactDOM.render(
,
document.getElementById('root'))
)


,因为它覆盖了第一个。您应该使用div或片段包装两个按钮,然后作为一个组件渲染,或者将它们添加到不同的div中,因为它会覆盖第一个按钮。您应该使用div或片段包装这两个按钮,然后作为一个组件渲染,或者将它们添加到不同的div中。