Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在react中动态调用Json对象_Javascript_Json_Reactjs - Fatal编程技术网

Javascript 如何在react中动态调用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. 下面是您的问题的工作示例,不过对于次要下拉列表,它不支持动态键

我有一个下面提到的格式的JSON文件,我想根据第一个下拉值将元素映射到第二个下拉列表

我可以用这个语法来实现它吗

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"
        }
    ]
}