【发布时间】:2023-01-25 00:21:11
【问题描述】:
在过去的几个月里,我一直在使用 REACT.js 开发一个复杂的应用程序,并且遇到了一个问题,尽管进行了广泛的研究和实验,但我仍然无法解决。
问题是我正在尝试在我的应用程序中实现动态路由,其中路由由从 API 获取的数据确定。我一直在使用 react-router-dom 库来处理我的路由,并成功实现了静态路由。但是,当我尝试根据从 API 获取的数据使用动态路由时,应用程序会抛出错误。
我尝试了几种不同的方法来解决这个问题,包括使用 useEffect 钩子来获取数据和更新路由,以及使用诸如 react-dynamic-route 之类的库来处理动态路由。但是,我无法使这些方法中的任何一种起作用。
这是我当前用于获取数据和更新路由的代码示例:
import { useEffect, useState } from 'react';
import { fetchData } from './api';
import {
BrowserRouter as Router,
Route,
Switch,
useLocation
} from 'react-router-dom';
const App = () => {
const [data, setData] = useState([]);
const location = useLocation();
useEffect(() => {
const fetchAPI = async () => {
setData(await fetchData());
};
fetchAPI();
}, [location]);
return (
<Router>
<Switch>
{data.map((item) => (
<Route key={item.id} path={`/${item.id}`} component={DetailPage} />
))}
<Route component={NotFound} />
</Switch>
</Router>
);
};
导出默认应用程序; 对于如何使用从 API 获取的数据在 REACT.js 应用程序中正确实现动态路由的任何见解或建议,我将不胜感激。任何帮助将不胜感激。谢谢你。
【问题讨论】:
-
您是否从旧网站帖子或其他内容中复制了此代码?我很确定 switch 已经不存在了。还有其他一些看起来很奇怪的东西,但是如果这只是从一些旧帖子中复制的,我可以举一个例子来说明如何编写它,这样它就可以工作
标签: javascript reactjs dom