我正在父组件中设置状态。然后,当设置了该状态(使用componentDidMount)时,我需要将其传递给孩子。
当前,由于它在子组件中返回undefined。我认为这是因为在传递不存在的状态时未设置状态。使其不确定。
尝试将boolean
条件设置为for状态,因此在通过之前必须为true。 Booleans
在孩子,父母中的任何地方,我认为这可能会有所作为,并且会阻止组件在我通过的道具存在之前对其进行查找。
在这里设置yearArr,结果是在安装组件时执行了功能
componentDidMount() {
const yearArrSorted = dataSet && this.playFunction();
this.setState({
locationData: dataSet,
yearArr: yearArrSorted
});
this._layerRendering();
this._animate();
}
这是功能:
playFunction = () => {
//i know this is unreadable, but i wanted to see how simple i could go.
return dataSet.map(i => {
return Object.keys(Object.values(i)[2])
.map(i => (i.startsWith(9) ? 19 + i : 20 + i))
.sort();
})[0];
};
这里的状态:
this.state = {
locationData: "",
year: 95,
elevationScale: elevationScale.min,
yearArr: []
};
Hjere是传递状态的地方,我非常骇人的方法试图让状态仅在设置了状态后才传递:
<YearSelector
yearOnChange={this.yearOnChange}
year={this.state.year}
dataStateChange={this.dataStateChange}
dataSet={dataSet}
years={this.state.yeaArr.length > 0 && this.state.yeaArr}
/>
我希望在设置状态时将状态作为道具发送给子组件,以便可以通过道具数组将道具用于.map
并使用{{1}创建一个<select>
DOM元素}
可以根据需要编辑问题,并可以提供代码。
答案 0 :(得分:0)
已解决问题。
最初尝试过此方法,但由于任何原因均无法正常工作。
years={this.state.yearArr && this.state.yearArr}
现在可以用了,我首先尝试的方法,这是反应的一种现状。