handleActions() 中括号 [] 的用途是什么?

What is the purpose of brackets, [], in handleActions()?

我遇到了 vanilla counter tutorial:

const reducer = handleActions(
  {
    [increment]: state => ({ ...state, counter: state.counter + 1 }),
    [decrement]: state => ({ ...state, counter: state.counter - 1 })
  },
  defaultState
);

我还没有在 redux-action docs 中看到必须将操作括在括号内的目的和含义,[]

没有这些,reducer 将无法正常工作。

有什么想法吗?

这是 ES6 中引入的 computed object property name 符号。

简而言之,它允许您使用可变键定义对象:

const key = 'someKey';
const obj = {[key]: 1} // {someKey: 1}

在您的特定示例中,increment 是一个由 const increment = createAction('INCREMENT'); 创建的动作,因此这就是为什么您需要使用 [increment] 在对象中定义 属性 .