我从API获得的响应数据有问题。我使用axios来获取JSON对象,并且每次调用API时,状态都应由对象列表替换。
这是代码。
https://i.stack.imgur.com/yHXn0.png
这是控制台
https://i.stack.imgur.com/KnHD2.png
我想我正在错误地更新状态,但是我看不到它是什么。
答案 0 :(得分:0)
您的错误消息很清楚。
无法读取未定义的属性“ 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} />
})