【发布时间】:2021-05-20 16:28:08
【问题描述】:
我是新手,通常使用 javascript。
此外,我确实有一个 json 文件,我想获取 url 值并使用该名称呈现组件。
{
"MTs": {
"MenuItems": {
"Main": {
"key": "1",
"url": "about",
"visible": true
},
"Add Status": {
"key": "2",
"url": "topics",
"visible": true
},
}
}
我的代码:
const [data, setData] = useState({ MTs: [] });
useEffect(() => {
fetch(props.role + ".json")
.then(function (response) {
// console.log(response);
return response.json();
})
.then(function (myJson) {
// console.log(myJson);
setData(myJson);
})
.catch((err) => {
console.log(err);
});
}, []);
var url = [];
var val = function (data) {
for (var key in data) {
if (data.hasOwnProperty(key)) {
for (var title in data[key].MenuItems) {
if (data[key].MenuItems[title].visible == true) {
url.push(
<Route
path={"/"+ data[key].MenuItems[title].url}
component={data[key].MenuItems[title].url}
/>
);
}
}
}
}
return url;
};
return <div>{val(data)}</div>;
};
它不渲染是因为它是一个数组并在组件名称中添加了双引号“”。
有什么方法或“更好的方法”可以做到这一点吗?
预期结果
<Route
path="/about"
component={about}
/>
<Route
path="/topics"
component={topics}
/>
<Route path="/datagrid" component={etc} />
【问题讨论】:
标签: javascript json reactjs components react-router-dom