【问题标题】:How to add data to an nested array inside a json object如何将数据添加到 json 对象内的嵌套数组
【发布时间】:2020-04-10 16:07:25
【问题描述】:

我的状态对象如下所示:

const [result,setResult] = useState({
  series: [
      {
          name: 'Budget',
          data: [5000, 3000, 5000, 7000, 6000, 4000]
      },
      {
          name: 'Income',
          data: [8000, 1000, 7000, 2000, 5000, 3000]
      }
  ]
})

现在我想将一些数据附加到第一个 series 对象中的 data 数组中

{
   name: 'Budget',
   data: [5000, 3000, 5000, 7000, 6000, 4000]
}

我尝试这样做:

function addNumber(){
  setResult([...result.series[0].data,45]) 
}

但它不起作用。有什么建议或解决办法吗?

【问题讨论】:

    标签: arrays json react-hooks jscript use-state


    【解决方案1】:

    最好使用不可变的js来更新嵌套数据,你可以使用immutableJs这样来做:

    setResult(immutable.setIn(result, ['series', 0, 'data'], result.series[0].data.concat(45)))
    

    setResult(immutable.updateIn(result, ['series', 0, 'data'], array => array.concat(45)))
    

    不可变 js 文档的链接 https://immutable-js.github.io/immutable-js/docs/#/

    【讨论】:

    • 它是一个包,你必须先安装它,然后需要它npmjs.com/package/immutable
    • 谢谢,但我刚刚更改了我使用的库,现在更容易了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 2020-12-20
    相关资源
    最近更新 更多