У меня есть функция, которая требует времени для извлечения данных.Когда рендеринг возвращается в первый раз, данные this.state
недоступны, поэтому, основываясь на множестве других вопросов, подобных этому, я пытаюсь использовать троичный файл и выполнить повторный рендеринг, когда данные будут готовы.Я использую версию обратного вызова setState:
this.setState(prevState => ({ comments: [...prevState.comments, top100Resolved ] }))
Когда данные (массив) возвращаются с помощью setState, я не могу получить к ним доступ.Цель состоит в том, чтобы нанести на него карту и протолкнуть его через шаблон, но я даже не могу внести в него индекс.Это рендер.
render(){
//true once there is some state
let bool = this.state.comments.length
return (
<div className="data">
{
bool ?
//Want to render markup here
this.state.commments.map(comment => {
<div>comment</div> //nothing happens
})
: <div>Not ready</div>
}
</div>)
}
Сначала появится Not Ready
.Но даже если bool
истинно и я вернусь [Array(0)]
, я не могу внести в него индекс.[Array(0)][0]
производит []
, который является массивом объектов.[Array(0)][0][0]
должен быть объектом, но undefined.
Таким образом, функция карты в настоящее время невозможна.
https://jsfiddle.net/drumgod/375bzycv/282/