如何在 redux 中正确克隆 json 数组?

Tar*_*iqN 5 javascript arrays reactjs redux

我是 Redux 的新手,Redux 的概念起初对我来说看起来很奇怪。假设我有一个处于 redux 状态的数组。

const state = [ 
  {show: false, id : '1'},
  {show: false, id : '2'},
  {show: false, id : '3'},
  {show: false, id : '4'},
  {show: false, id : '5'}
]
Run Code Online (Sandbox Code Playgroud)

我想克隆这个数组并更改/变异一个对象。

我在减速器中尝试过类似的东西,但没有用。

   return  [...state.concat(Object.assign({}, state[0], {show:true} )).slice(1,5)];
Run Code Online (Sandbox Code Playgroud)

任何帮助或解释都会很好。

Mar*_*cke 5

我想你可能已经在你的问题中切换[]{}

假设您的状态是:

const state = [ 
  { show: false, id: '1' },
  { show: false, id: '2' },
  { show: false, id: '3' },
  { show: false, id: '4' },
  { show: false, id: '5' }
]
Run Code Online (Sandbox Code Playgroud)

你可以像这样写一个reducer:

return [
  ...state.slice(0, index),
  Object.assign({}, state[index], { /* your changes */ })
  ...state.slice(index + 1)
]
Run Code Online (Sandbox Code Playgroud)

index要更改的元素的索引在哪里。

参考