Как добавить данные во вложенный массив внутри объекта json - PullRequest
0 голосов
/ 10 апреля 2020

Мой объект состояния выглядит следующим образом:

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

Теперь я хочу добавить некоторые данные в массив data в первом series объекте

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

Я пытаюсь сделать это с:

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

Но это не работает. Есть какие-нибудь предложения или решения?

1 Ответ

0 голосов
/ 10 апреля 2020

Лучше использовать неизменяемый js для обновления вложенных данных, вы можете сделать это так, используя неизменяемое Js:

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/# /

...