Redux reducer中的传播算子

ann*_*123 6 javascript reactjs redux

我试图了解在Redux状态下散布运算符会做什么?

我经历了这个问题,在React-Redux Reducers中使用Spread语法的目的,但是由于某些原因,我不相信Answer。

有人可以用简单的方式向我解释为什么我们要这样做吗

  case WHATEVER:
      return {
        ...state,
        DateSucess: action.payload,
Run Code Online (Sandbox Code Playgroud)

不只是

 case WHATEVER
  return {
   DataSucess: action.payload
Run Code Online (Sandbox Code Playgroud)

Fab*_*sta 7

传播运算符的功能与ES6中的相同,但行为相同(请查看MDN docs)。

关于使用...状态的动机,想法很简单:保留旧状态并添加或覆盖DateSucess属性。

所以说:

const state = {foo: 'bar', DateSucess: 'oldDateSuccess', zip: 'zap'}
Run Code Online (Sandbox Code Playgroud)

如果不使用传播,state的新值将仅为DateSucess,并且会丢失foo和zip值,而使用传播,您将覆盖DateSucess,保持其余值不变。

这种传播等同于Object.assign的以下传播

return Objet.assign(oldState, {DateSucess: 'newDateSucess'})
Run Code Online (Sandbox Code Playgroud)