请看这里的例子:
https://github.com/rackt/redux/blob/master/examples/real-world/actions/index.js
CALL_API
CALL_API
在方括号中,所以我假设它可能是一个数组,这是一个解构的东西。
但export const CALL_API = Symbol('Call API')
被定义为
CALL_API: {}
所以它不是数组或任何东西。我也看到了使用非符号的方括号。那么
之间的区别是什么[CALL_API]: {}
和
movePepper
答案 0 :(得分:5)
这是computed property - 相当于:
let result = {}
result[CALL_API] = { ... };
return result;
将此与Symbol
结合使得库作者create a protocol不会与其他协议冲突(例如,如果协议是字符串"调用"那么它可能会与其他库冲突将someObject.call
用于(不相关的)协议 - 以及与Function.prototype.call
冲突。)
答案 1 :(得分:1)
这是做快递[CALL_API]
的值并将其用作键,从而动态设置密钥。
示例:
var x = "hello";
var y = {
[x]: "world"
};
console.log(y); // Object {hello: "world"}
经过一些测试,我建议对此非常小心。以下内容完全有效:
var x = {"will": "this work?"};
var y = {[x]: "let's see"};
console.log(y); // Object {[object Object]: "let's see"}
console.log(y['[object Object]']); // "let's see"