我试图从从函数传入的值创建一个新对象,然而,当我尝试这样做时-我得到了文本变量名称进入状态。例如:
updateReactions = (foods, reaction) => {
foods.forEach((food) => {
if (!this.state.reactions[food]) {
let newReaction = { food: { reaction : 1 } };
});
};
如果我调用updateReactions(banana, happy)它会创建一个对象创建
{ food: { reaction : 1 } } ;
这输出到一个新的对象字面上显示食物:反应:1,但我想让它创建
{ banana: { happy : 1 } }
谢谢!
可以这样使用对象键:
let newReaction = { [food]: { [reaction] : 1 } };
将引用传递的参数。
在提供的示例中,您告诉变量newReaction它必须是一个具有food对象的对象,该对象必须具有值为1的reaction key
,您没有引用实际的函数参数:)
let newReaction = {food: {reaction: 1}};
:let newReaction = {[food]: {[reaction]: 1}};