Я новичок в React и сталкиваюсь с проблемой, когда я получаю неопределенные реквизиты в компонентах, дочерних компонентах и внуках.
Вот что у меня происходит...
приложение.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(), а затем устанавливаю состояние компонента для передачи в качестве реквизита дочернему компоненту?
componentWillMount() {
var getEntities = this.props.entities
this.setState({entities:getEntities})
}
render() {
return (
<div>
<ChildComponent entities={this.state.entities} />
</div>
);
}
В конце концов, моя проблема заключается в моем ChildComponent или GrandChildComponent, все рендерится до того, как устанавливаются реквизиты или состояние. Поэтому, когда я вызываю {entities.id}, я получаю неопределенное значение.
Может я просто тупой?