javascript - 如何在 ArrayObject React native 中设置状态数组
问题描述
我已经坐了一段时间试图弄清楚如何做到这一点我已经搜索了很多关于 StackOverFlow 的文档(也许我错过了)
this.state = {
data: {
labels: [],
datasets: [
{
data: []
}
]
}
};
我尝试使用以下代码如何为 2 个数组 Labels:[] 和 data:[] setState CONCAT
我的代码:
this.setState(a => ({
data: {
labels: this.state.data.labels.concat(x.month), <- is this correct?
datasets: [
{
data: this.state.data.datasets.map(x=> x.data.concat(x.money/1000))
or //data: this.state.data.datasets[0].data.concat(x.money/1000))
}
]
}
}
)
)
JS
data: {
labels: [],
datasets: [
{
data: []
}
]
}
如何指向数据数组?
解决方案
你可能知道,react/react-native 中的状态更新是异步的。因此,您编写的代码有时可能会导致一些奇怪的行为。例如,同时为该状态更新调用多个函数可能会导致意外的结束状态。
相反,您可以按以下方式更新您的状态
this.setState((state, props) => ({
data: {
labels: state.data.labels.concat(x.month),
datasets: state.data.datasets.map(({data}) => ({data: data.concat(x.money/1000)}))
}
})
)
推荐阅读
- css - Chrome 的网格列问题
- javascript - 如何将 3D 安全条带支付与 nodejs 集成?
- java - Android中的空指针异常问题
- embedded-linux - 加载较大的 rootfs 时 U-boot tftp ramdisk Bad Trap
- javascript - Node-oracledb:只有最后一个值在循环中被多次插入
- node.js - 如何解决 Express Validator 中间件错误?
- android - 在 IOS 上找不到模块“flutter_keyboard_visibility”
- php - foreach 正在丢失对象的值
- angular - 有多少种方法可以提高角度性能?
- python - 使用 ImageField 对 Django ModelForm 进行单元测试,测试显示无效的表单