gpt4 book ai didi

javascript - React.js 如何在组件内渲染组件?

转载 作者:行者123 更新时间:2023-12-03 13:02:49 25 4
gpt4 key购买 nike

我被困住了。我在不同的文件上有几个单独的组件。如果我将它们渲染在 main.jsx 中,如下所示:

ReactDOM.render(<LandingPageBox/>, document.getElementById("page-landing")); 
ReactDOM.render(<TopPlayerBox topPlayersData={topPlayersData}/>, document.getElementById("wrapper profile-data-wrapper"));
ReactDOM.render(<RecentGamesBox recentGamesData={recentGamesData}/>, document.getElementById("history wrapper"));

一切正常,但我想知道这是否是一个好的做法?也许可以做一些类似只有一个 ReactDom.render 的事情:

ReactDOM.render(<LandingPageBox recentGamesData={recentGamesData} topPlayersData={topPlayersData}/>, document.getElementById("page-landing")); 

我尝试了不同类型的 LandingPageBox 变体以某种方式包含其他两个组件,但没有成功。它们有时会呈现在页面之外等等。我认为它应该看起来像这样:

import React from 'react';
import RecentGames from '../RecentGames/RecentGames.jsx';
import TopPlayers from '../TopPlayers/TopPlayers.jsx';
import PageTop from './PageTop.jsx';
import PageBottom from './PageBottom.jsx';

class LandingPageBox extends React.Component {
render() {
return (
<body className="page-landing">
<PageTop>
<TopPlayers topPlayersData={this.props.topPlayersData} />
</PageTop>
<PageBottom>
<RecentGames recentGamesData= {this.props.recentGamesData}/>
</PageBottom>
</body>
);
}
}

export default LandingPageBox;

但是此代码仅渲染 PageTop 和 PageBottom,没有播放器或游戏组件。

所以我的问题是,如何设置 LandingPageBox 文件,以便 TopPlayers 组件在 PageTop 组件内渲染,RecentGames 组件在 PageBottom 组件内渲染?谢谢。

最佳答案

在你的例子中

return (
<body className="page-landing">
<PageTop>
<TopPlayers topPlayersData={this.props.topPlayersData} />
</PageTop>
<PageBottom>
<RecentGames recentGamesData= {this.props.recentGamesData}/>
</PageBottom>
</body>
);

React 只会渲染顶级自定义组件 PageTopPageBottom,正如您已经发现的那样。其他组件(TopPlayersRecentGames)嵌套在这些组件中。这意味着什么? React 不只是显示那些嵌套组件,因为它不知道如何执行此操作。相反,所有渲染都必须由外部组件 PageTopPageBottom 完成。 React 只是在 this 中将嵌套组件传递给它们(PageTop 获取 TopPlayersPageBottom 获取 RecentGames) .props.children。现在由外部组件决定如何处理这些嵌套组件。在您的示例中,您将修改 PageTopPageBottom 组件以使用 {this.props.children} 以合适的方式显示其嵌套组件。方式。

关于javascript - React.js 如何在组件内渲染组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35969495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com