Javascript 如何在react中动态调用Json对象
我有一个下面提到的格式的JSON文件,我想根据第一个下拉值将元素映射到第二个下拉列表 我可以用这个语法来实现它吗Javascript 如何在react中动态调用Json对象,javascript,json,reactjs,Javascript,Json,Reactjs,我有一个下面提到的格式的JSON文件,我想根据第一个下拉值将元素映射到第二个下拉列表 我可以用这个语法来实现它吗 const toolList = datalist.AssetCategory; -- datalist is the JSON file name <br> const AIAssets = datalist.SelectedValue; -- SelectedValue is an variable. 下面是您的问题的工作示例,不过对于次要下拉列表,它不支持动态键
const toolList = datalist.AssetCategory; -- datalist is the JSON file name <br>
const AIAssets = datalist.SelectedValue; -- SelectedValue is an variable.
下面是您的问题的工作示例,不过对于次要下拉列表,它不支持动态键,您必须指定它们。但对于第一个,您可以拥有任意数量的动态关键点 您可以访问第一个下拉列表中的值,如下所示
import React,{useState}来自“React”;
从“/data.json”导入数据;
导出默认函数App(){
//在此处设置主键
const primaryOptions=Object.keys(数据);
//从第一个下拉列表中选择的选项,最初设置为空
常量[selectedPrimaryOption,setSelectedPrimaryOption]=useState(“”);
//二级选定选项的数组
常量[secondaryOptions,setSecondaryOptions]=useState([]);
//更改第一个下拉列表时更改第二个下拉列表。
常量handleChange=e=>{
常量值=e.target.value;
setSelectedPrimaryOption(值);
如果(值){
//在此处访问键['asset'、'toolname']等
const secondaryData=data[value].map(
v=>v[“资产”]| | v[“工具名”]| | v
);
设置二次选项(二次数据);
}
};
返回(
初选
选择选项
{primaryOptions.map(选项=>(
{option}
))}
二次选择
{secondaryOptions.map(选项=>(
{option}
))}
);
}
下面是您的问题的工作示例,不过对于次要下拉列表,它不支持动态键,您必须指定它们。但对于第一个,您可以拥有任意数量的动态关键点
您可以访问第一个下拉列表中的值,如下所示
import React,{useState}来自“React”;
从“/data.json”导入数据;
导出默认函数App(){
//在此处设置主键
const primaryOptions=Object.keys(数据);
//从第一个下拉列表中选择的选项,最初设置为空
常量[selectedPrimaryOption,setSelectedPrimaryOption]=useState(“”);
//二级选定选项的数组
常量[secondaryOptions,setSecondaryOptions]=useState([]);
//更改第一个下拉列表时更改第二个下拉列表。
常量handleChange=e=>{
常量值=e.target.value;
setSelectedPrimaryOption(值);
如果(值){
//在此处访问键['asset'、'toolname']等
const secondaryData=data[value].map(
v=>v[“资产”]| | v[“工具名”]| | v
);
设置二次选项(二次数据);
}
};
返回(
初选
选择选项
{primaryOptions.map(选项=>(
{option}
))}
二次选择
{secondaryOptions.map(选项=>(
{option}
))}
);
}
。示例const industryStr='Industry';常量dynamicResult=dataObj[industryStr]代码>第二个下拉列表是否会有不同的键,例如第二个中的资产和工具名,还是只会有这些键?@CalebTaylor非常感谢您的快速响应,它正在工作。。示例const industryStr='Industry';常量dynamicResult=dataObj[industryStr]代码>第二个下拉列表是否会有不同的键,例如第二个中的“资产”和“工具名”,还是仅仅是这些键?@CalebTaylor非常感谢您的快速响应,它正在工作。
{
"AssetCategory":
[
{
"toolname" :"Industry"
},
{
"toolname" :"Process"
},
{
"toolname": "Technology"
}
],
"Industry":
[
{
"asset" : "Banking"
},
{
"asset" : "HealthCare"
},
{
"asset" : "Telecom"
},
{
"asset" : "Finance & Banking"
},
{
"asset" : "Insurance"
},
{
"asset" : "Manufacturing"
}
],
"Process":
[
{
"asset" : "Accounts Payable"
},
{
"asset" : "Finance & Accounting"
},
{
"asset" : "Human Resources"
}
],
"Technology":
[
{
"asset" : "Excel"
},
{
"asset" : "SAP S/4HANA"
},
{
"asset" : "GUI"
}
]
}