reactjs - 在 React 上更新数组的状态
问题描述
我从 API 获得的响应数据有问题。我使用axios获取JSON对象,每次调用API时都要用对象列表替换状态。
这是代码。
https://i.stack.imgur.com/yHXn0.png
这是控制台
https://i.stack.imgur.com/KnHD2.png
我想我正在错误地更新状态,但我看不到它是什么。
解决方案
你的错误信息很清楚。
无法读取未定义的属性“推送”
这意味着什么?这意味着您在一个仍未定义的变量上调用了 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} />
})
推荐阅读
- vuejs2 - 在 vuejs 2 中使用 MediaDevices.getUserMedia() 切换相机
- android - 消除垂直线性布局中图像和文本之间的空白
- javascript - 在 JavaScript 中对两个输入执行算术运算
- selenium - 网格无法连接到节点
- node.js - 如何使 node-redis 方法在 NodeJS 中以最高优先级执行?
- android - Android Studio 3 - 找不到 EOCD 签名
- c# - 从 A* 获取最优路径
- c# - 我应该如何获得 IEnumerable 的长度?
- elasticsearch - 如何创建一个工作日在 Kibana 中运行的 cron 表达式?
- javascript - JavaScript - API 请求(访问控制允许来源错误)