【问题标题】:concat vs spread syntax连接与传播语法
【发布时间】:2017-12-13 22:33:42
【问题描述】:

我正在开发一个代码库,其中有很多不一致之处,因为它是由多个不同的人共同开发的。

function todos(state = [], action) {
   switch (action.type) {
      case 'ADD_TODO':
      return state.concat([ action.text ])
   default:
      return state
   }
}

我可以使用扩展语法代替 concat 吗?

return [...state, action.text]

【问题讨论】:

  • 你应该可以。当你尝试它时它坏了吗?
  • 我会使用扩展语法,因为它是为您的需要而开发的。这也是更干净和现代的方式。
  • @Ryan 我在手机上,没测试过,想知道concat的替代方案,想规范一下代码。
  • @JennyMok: 好吧,就像[...state, action.text] 一样,应该是一个而不是两个.等到你离开移动设备并进行实验 ¯\_(ツ)_/¯
  • @Ryan 动作是对象,对吗? [...state, action.text] 的结果是什么?

标签: javascript reactjs ecmascript-6 redux


【解决方案1】:

传播语法和 Array.prototype.concat() 都不会改变状态,因此尊重 redux 的第二条规则

状态是只读的

【讨论】:

    猜你喜欢
    • 2017-03-25
    • 2018-12-12
    • 1970-01-01
    • 2023-04-04
    • 2018-10-14
    • 2019-04-16
    • 2018-05-07
    • 1970-01-01
    • 2019-11-18
    相关资源
    最近更新 更多