javascript - Redux reducer 中的传播运算符

标签 javascript reactjs redux

我想了解扩展运算符在 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/

相关文章:

javascript - 无法在 Chart.js 上显示数据

php - JavaScript 到 PHP 的安全性

javascript - 如何使用内联样式的前缀。 react

css - 我可以在 PostCSS 中使用带有可变参数的类吗?

javascript - 在中间件中调度 redux 操作会导致意外行为

javascript - 闭包如何具体化数据封装?

javascript - 为什么 React.Component 没有显示在特定路由上?

javascript - 重新图表 - 在左侧对齐轴标签

javascript - TypeError : _this. store.getState 不是从 Redux 使用连接时的函数

reactjs - 无法从 React Native 应用程序中的 fetch 访问 json 服务器