javascript - 如何在 React 中更新包含 N 个对象的 2D 数组的状态?

标签 javascript arrays reactjs react-vis

在进入主题之前,我想提一下,我已经提到过类似的问题,但无法自己找到解决方案。

Updating React state as a 2d array?

假设这是我的状态对象

state = {
    graphData: [
        [{x: 0, y: 0}],
    ],
};

随着时间的增加,graphData 会变得更大,可能看起来像这样

    graphData: [
        [{x: 0, y: 0}, {x: 1, y:1}, {x:2, y:2}],
    ],

目前,我是这样处理的:

  nextGraphData = this.state.graphData[0][graphDataLength] = {x: lastXAxisValue + 1, y: value};

    this.setState({
        graphData: {
            ...this.state.graphData,
            nextGraphData
        }
    });

显然,我收到一条错误消息,指出我不应该直接改变状态。那么,如何在不直接突变的情况下实现相同的目标。我尝试了一下,但无法弄清楚。

最佳答案

试试这个

state = {
    graphData: [
        [{x: 0, y: 0}],
    ],
};

像这样使用

this.setState({
  ...this.state,
  graphData: [...this.state.graphData, {x:1,y:1}]
})

关于javascript - 如何在 React 中更新包含 N 个对象的 2D 数组的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59679003/

相关文章:

javascript - 指定一个 prop 为 React 中的特定组件

javascript - 我如何通过await访问解析数组中的2个元素

arrays - 如何在VBA中将简单字符串转换为字节数组?

c# - 使用同一元素的多个副本初始化 C# 数组

javascript - JS .map 函数不显示任何元素

javascript - 从循环内的 Promise 值设置状态

javascript - 将文本限制到 contenteditable 中 div 的宽度并触发 Enter 形成新行

c - 在 C 怪异行为中使用结构传递数组及其长度

javascript - 将参数传递给 jest 函数

javascript - Onclick window.location 并传递参数