javascript - React – 如何在另一个已安装的组件中渲染附加组件?

标签 javascript reactjs

只是想知道是否有任何方法可以在 React 中的另一个组件中渲染组件。

我渲染了一个<Scene />像这样的组件:

import Scene from './Scene';

ReactDOM.render(<Scene/>, document.getElementById('root'));

在某些时候我需要渲染另一个组件 <Building /> (例如在 onClick 上),因此它应该在 <Scene />

目前我正在尝试这样做:

import Building from './Building';

ReactDOM.render(<Building/>, document.getElementById('fields'));

还有这个fields里面的容器render()方法是 <Scene /> 的子级(相当深的一个)

是的,它渲染了,它位于 #fields 内在 HTML 中,但如果我转到 React 开发人员工具,我会看到以下内容:

<Scene></Scene>
<Building></Building>

React 只是渲染 <Building> <Scene> 之外而我需要的恰恰相反。

不幸的是,条件渲染并非如此。

最佳答案

您应该只使用一个ReactDOM.render() ,不是多个。创建 1 个组件(通常名为 <App /> )并在该组件中创建逻辑是很常见的。基本上,您在 Javascript/ReactJS 中创建整个应用程序,然后使用该行将其“加载”到您的 html 中。

export class App extends React.Component{
    render(){
        // It now returns only one component, but this is where you would put your react router
        return(
            <Scene />
        );
    }
}
ReactDOM.render(<App />, document.getElementById('root'));


export class Scene extends React.Component{
    render(){
        return(
            <>
                <div> Your normal scene here and if you want <Building /></div>
                { orSomeVariableWhichHasToBeTrue && <Building />}
            </>
        );
    }
}
<小时/>

另外,我建议尝试遵循他们的基础教程,我认为你错过了 React 的预期用途。再次阅读文档可能有助于获得一些见解。

关于javascript - React – 如何在另一个已安装的组件中渲染附加组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56208323/

相关文章:

javascript - 从 Google Charts WordTree 中删除工具提示

javascript - 如何在 WebStorm 的 JSHint 的另一个文件中设置已定义变量的范围?

javascript - 如何获取d3.js Treemap布局中元素的对象属性onclick

javascript - 如何在 React 中附加到 dom?

javascript - React - 在构造函数中绑定(bind) this 不起作用

javascript - 如何将字符串转换为javascript数组

javascript - 使用 Javascript/jQuery 根据文本值修改 CSS

javascript - AngularJS:如何显示数组的数组?

javascript - 将react/node应用程序部署到heroku时出现webpack-dev-server错误

javascript - 在 React 中迭代对象