【发布时间】:2018-09-02 07:43:08
【问题描述】:
我对 React 有点陌生,并且遇到了一个问题,即我在组件、子组件和孙子组件中获得了未定义的道具。
这就是我正在做的事情......
app.jsx
constructor(props) {
super(props);
this.state = {
entities: [],
}
}
componentDidMount() {
axios.get(`api.com`)
.then(response => {this.setState({entities: response,})});
}
render() {
return (
<div>
<Component entities={this.state.entities} />
</div>
);
}
据我了解,一旦组件挂载,它就会执行 axios 调用,并设置状态。然后我将 state.entities 传递给组件。
然后我需要在组件渲染之前访问道具,所以我是否在 componentWillMount() 中这样做,然后将组件状态设置为作为道具传递给 ChildComponent?
componentWillMount() {
var getEntities = this.props.entities
this.setState({entities:getEntities})
}
render() {
return (
<div>
<ChildComponent entities={this.state.entities} />
</div>
);
}
最后,我的问题出在我的 ChildComponent 或 GrandChildComponent 中,一切都在渲染之前并设置了道具或状态。所以当我打电话给 {entities.id} 我得到一个未定义的。
也许我只是个笨蛋?
【问题讨论】:
-
“实体”是对象还是数组?
标签: reactjs state react-props