请问这种es6的写法是叫什么写法

请问大神们这种是什么写法呢 'delete'(state, { payload: id })

reducers: {
    'delete'(state, { payload: id }) {
      return state.filter(item => item.id !== id);
    },
  }
阅读 4.1k
4 个回答

{ payload: id } 是对象解构赋值,具体参考 解构赋值 MDN
'delete' 仅仅是对象属性名,事实上,对象的所有属性名都会被转为 String
如果你指的是 'delete'(state, { payload: id }) {} 这种函数写法的话,则可以参考 方法的定义 MDN

等于以下写法:

reducers: {
  'delete': function (state, _ref) {
      var id = _ref.payload
      return state.filter(function (item) {
          return item.id !== id
      })
  }
}

叫参数解构

等于如下代码

reducers: {
    delete:(state, { payload: id }) => {
        return state.filter(item => item.id !== id);
    },
}

// 相当于这个

reducers: {
    'delete': function (state, data) {
        let id = data.payload
        return state.filter(item => item.id !== id);
    },
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题