是否可以将函数作为计算密钥ES6中的密钥?

时间:2017-07-11 10:19:07

标签: javascript reactjs ecmascript-6

我在redux-connect库中遇到了这段代码,我想知道是否可以将一个函数作为密钥放在ES6中的计算密钥中。这是如何工作以及javascript如何解释的?

export const reducer = handleActions({
  [beginGlobalLoad]: state => ({
   ...state,
  loaded: false,
}),

[endGlobalLoad]: state => ({
  ...state,
  loaded: true,
})
....
}

with beginGlobalLoad是由

创建的函数
export const beginGlobalLoad = createAction('@redux-conn/BEGIN_GLOBAL_LOAD');

我读过动态计算密钥的概念,但没有说明使用该函数作为属性的关键字。

非常感谢您的回答

图书馆的链接:https://github.com/makeomatic/redux-connect/blob/master/modules/store.js

1 个答案:

答案 0 :(得分:4)

没有。属性键必须是字符串或符号。如果你使用一个函数,它将像任何其他对象一样被字符串化,而这通常不是你想要的。

然而,createAction docs具体说明了

  

createActionhandleActionhandleActions中用作类型时也会返回其类型。

他们通过overwriting toString实现的目标。