Я использую приложение create-реагировать.И если вы наблюдаете следующую функцию, которую я сделал для запроса данных из firebase:
request = (id) => {
firebaseDB.ref(`Majors/${id}`).once('value')
.then((snapshot)=>{
this.setState({
data: snapshot.val()
})
})
}
, как показано выше, я обновил состояние значением в snapshot.val.
теперь в том же компоненте, я использую this.state.data вот так
showCourses(){
this.state.data.Courses.map((item,i)=>(
<div key={i}>
asd
</div>
))
}
и выдает ошибку, говорящую «this.state.data.Courses не определены», потому что ответ (снимок)) еще не вернулись с данными еще и состояние не было обновлено.
я попытался добавить условное выражение так:
showCourses(){
if (this.state.data.Courses){
return(this.state.data.Courses.map((item,i)=>(
<div key={i}>
asd
</div>)))
}
}
ошибка исчезлано он не рендерится!
Я предполагаю, что вопрос заключается в следующем: какой механизм используется для захвата, обновления состояния и перерисовки компонента?