在 Redux 的 Reducer 中操作 state 的代码

因为在 Redux 的 Reducer 中,不能直接返回 state,而是要返回一个新的 state,所以可以使用下面的方式操作 state 从而减少代码量。

变更值

 Object.assign({}, state, {
         [action.subreddit]: posts(state[action.subreddit], action)
  })

hc
添加 object

Object.assign({}, state, {
               todos: [
                 ...state.todos,
                 {
                   text: action.text,
                   completed: false
                 }
               ]
             })

添加值到数组

[ ...state, action.productId ]

删除 object

state.filter(c => c.id !== commentId);

删除数组指定位置的 item

const index = state.indexOf(action.childId)
return [
  ...state.slice(0, index),
  ...state.slice(index + 1)
]

你可能感兴趣的:(在 Redux 的 Reducer 中操作 state 的代码)