reactjs - 如何从传入的参数创建对象?
问题描述
我正在尝试根据从函数传入的值创建一个新对象,但是,当我尝试这样做时 - 我将文字变量名称置于状态。例如:
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 对象的对象,该对象必须具有reaction key
值为 1,您不是指实际的函数参数:)
推荐阅读
- powershell - PSScriptAnalyzer 在我的 Visual Studio 代码中不起作用
- java - 为什么builder会丢失类型?
- qt - Why expanding in QTreeView may work incorrectly?
- mongodb - Create MongoDB External View using SparkSQL Only
- crash - How to check if @EnvironmentObject is set? (SwiftUI)
- windows - GNU make directory listing using $(shell dir ) command
- jinja2 - Access Pelican page and article metadata the same way?
- javascript - 使用 Enter 键(包括 select2)在元素之间切换
- html - 如何在表单字段下定位地图 div?
- elixir - 将 Ecto 片段提取到变量中