Обновление состояния массива в React - PullRequest
0 голосов
/ 13 марта 2019

У меня проблемы с данными ответа, полученными из API.Я использую axios, чтобы получить объект JSON, и состояние должно заменяться списком объектов при каждом вызове API.

Вот код.

https://i.stack.imgur.com/yHXn0.png

А вот и консоль

https://i.stack.imgur.com/KnHD2.png

Я думаю, что я неправильно обновляю состояние, но не вижу, что это такое.

1 Ответ

0 голосов
/ 13 марта 2019

Ваше сообщение об ошибке довольно ясно.

Невозможно прочитать свойство 'push' из неопределенного

Что это значит? это означает, что вы вызвали метод push для переменной, которая все еще не определена

let paineis = empresas.map( (empresa, i) => {
    paineis.push(<Painel key={i} nome={empresa.nome} usuarios={empresa.usuarios} />)
//  ^-----^
//  this is the issue. paineis has not yet been assigned a value!
})

Реальная проблема здесь в том, что вы используете map неправильно. возвращаемое значение на карте - это путь к push новому значению. Вы хотите сделать это вместо

let paineis = empresas.map( (empresa, i) => <Painel key={i} nome={empresa.nome} usuarios={empresa.usuarios} />)

это сокращение ES6 для возврата, также может быть написано

let paineis = empresas.map( (empresa, i) => {
  return <Painel key={i} nome={empresa.nome} usuarios={empresa.usuarios} />
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...