Я застрял. У меня есть несколько отдельных компонентов в отдельных файлах. Если я вынести их в main.jsx как следующее:React.js Как визуализировать компонент внутри компонента?
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"));
Я пробовал разные виды variatons от 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? Спасибо.
Почему вы не используете 'this.props.children'? –
Я пробовал читать об этом, но я просто не понимаю концепцию. Как React знает, какой ребенок использовать, если у меня есть, как в этом примере два? Кроме того, возможно, я тоже не понял, что эта страница должна быть визуализирована первой, а затем внутри нее должны быть отображены эти два компонента, потому что в компонентах страницы есть контейнеры, в которых эти компоненты должны быть помещены. –