我怎样才能在redux中正确克隆json数组?

时间:2016-09-19 22:29:33

标签: 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'}
]

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

我在减速机上试过这样的东西,但它不起作用。

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

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

1 个答案:

答案 0 :(得分:2)

我认为您可能已在问题中使用[]切换{}

假设你的州是:

const state = [ 
  { show: false, id: '1' },
  { show: false, id: '2' },
  { show: false, id: '3' },
  { show: false, id: '4' },
  { show: false, id: '5' }
]

你可以写一个这样的缩减器:

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

其中index是您要更改的元素的索引。

参考