[英]React. How to collect and transfer the collection of nodes as props to children
因此,在模塊iteamsHolder
頁面之后,我嘗試收集節點。 它適用於主要的App
組件,當我在其中調用模塊iteamsHolder
時,它會看到所有收集的iteam。
但是,當我嘗試將帶有iteam的iteamsHolder
模塊轉移到App
子組件時,此模塊iteams error
或undefined
。 因此,我知道問題出在組件隊列渲染中。 但是我們如何解決該錯誤呢?
/ *主要應用程序組件* /
import iteamsHolder from '../view/iteamsHolder'
import sidebarWidgetHide from '../view/sidebarWidgetHide'
class App extends React.Component {
constructor(props) {
super(props);
this.handleKeyCode = this.handleKeyCode.bind(this);
this.handleClick = this.handleClick.bind(this);
}
render() {
return (
<Fragment>
<Preloader/>
<LeftSideInfo state={this.state.toggle} updateState={this.updateState}
coordY={this.state.coordY}/>
<MenuButtonOpen state={this.state.toggle} updateState={this.updateState}
iteamsHolder={iteamsHolder().iteamsMain}/> // this is where I'm
// trying to transfer the iteams module.
</Fragment>
)
}
/ * ITEAM保持器模塊* /
const iteamsHolder = () => {
if (document.readyState === "complete") {
let iteamsMain = {
sidebar: document.querySelector('.left-side__column'),
rightColumn: document.querySelector('.right-side__column')
};
let iteamsSupport = {
header: document.querySelectorAll('.menu-button__container'),
menuButton: document.querySelectorAll('.menu-button'),
menuName: document.querySelector('.personal-name'),
experienceblock: document.querySelector('.block-headline.block-headline__experience')
};
return { iteamsMain, iteamsSupport };
} else {
return 'Sorry';
}
};
export default iteamsHolder;
/帶有嵌套課程模塊的兒童組件/
class MenuButtonOpen extends React.Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
this.handleScroll = this.handleScroll.bind(this);
}
render() {
return (
{console.log(this.props.iteamsHolder)} // undefined of error
)
}
由於iteamsHolder
返回默認值'Sorry'
,而不是對象{ iteamsMain, iteamsSupport }
您變得undefined
。 如果更改為:
<MenuButtonOpen
state={this.state.toggle}
updateState={this.updateState}
iteamsHolder={iteamsHolder()}
/>
您會看到'Sorry'
正在傳遞給組件。 這是因為在評估iteamsHolder
時,該網頁尚未完全加載。 不知道為什么要以這種方式來構造代碼,就如何“修復”它提出了一個很好的建議。 可能有幫助的是查看document.readyState
工作方式,並通讀此處列出的建議 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.