我想了解扩展运算符在 Redux 状态下做了什么?
我回答了这个问题 Purpose of the Spread syntax in React-Redux Reducers但出于某种原因不能说服 Answer。
谁能用非常简单的术语向我解释为什么我们要这样做
case WHATEVER:
return {
...state,
DateSucess: action.payload,
不仅仅是
case WHATEVER
return {
DataSucess: action.payload
最佳答案
扩展运算符与 ES6 中的相同,仍然是相同的行为(检查 MDN docs)。
关于使用 ...state 的动机很简单:保留旧状态并添加或覆盖 DateSucess 属性。
让我们说:
const state = {foo: 'bar', DateSucess: 'oldDateSuccess', zip: 'zap'}
如果您不使用 spread,state 的新值将仅为 DateSucess,您将丢失 foo 和 zip 值,使用 spread 您只是覆盖 DateSucess,保持其余值不变。
此价差相当于以下 Object.assign
return Object.assign(oldState, {DateSucess: 'newDateSucess'})
关于javascript - Redux reducer 中的传播运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52702146/