我正在尝试根据名称的值创建一些动态JSON,如下面的
this.merchantFirebase.child(firebase.auth().currentUser.uid).update({
this.props.data.name: {
status: this.state.productSwitch
}
});
我在想这会产生类似
的东西this.merchantFirebase.child(firebase.auth().currentUser.uid).update({
latte: {
status: this.state.productSwitch
}
});
但它只是给了我一个意外的令牌错误
答案 0 :(得分:3)
您需要为此使用不同的表示法:
var updates = {};
updates[this.props.data.name] = { status: this.state.productSwitch };
this.merchantFirebase.child(firebase.auth().currentUser.uid).update(updates);
通过使用方括号表示法,JavaScript“知道”它需要将this.props.data.name
作为表达式进行求值,而不是将其用作属性的文字名称(因为它试图在您的代码中执行)。