这是在 ReduxReducer 中复制状态的正确方法吗?

Tay*_*tin 0 reactjs redux react-redux

过去我就是Object.assign()这样使用和完成的,但最近我被告知要使用扩展运算符。我想知道这是否是正确的做法,或者这是否会改变状态?

import constants from '../constants';

const initialState = {
  all: null
};

export default (state = initialState, action) => {
  switch (action.type) {
    case 'ITEM_ADDED':
      return { ...state, all: state.all.push(action.data) };
    default:
      return { ...state };
  }
};
Run Code Online (Sandbox Code Playgroud)

Abd*_*UMI 5

当你使用方法时你做了一个突变Array::push

  return { ...state, all: state.all.push(action.data) };
Run Code Online (Sandbox Code Playgroud)

正确的方法是使用展开运算符将对象追加到数组而不是 push :

  return { ...state, all: [...state.all, action.data] };
Run Code Online (Sandbox Code Playgroud)