我有一个React应用程序,定义了一些公共/私有路由,我需要将用户信息传递到私有路由中。我尝试调用API(返回用户详细信息)并在呈现路由之前接收它,但无法使其工作-路由在获得响应之前被呈现,因此用户获得空值。在这个例子中,我试着使用了callc/await,但没有成功。或者如果有人知道更好的方法。谢谢你,谢谢
export const Routes = () => {
const user = axios.get('/login').then(function(res) { return res })
return (
<Switch>
<PrivateRoute exact path="/" component={Home} user={user} />
<Route component={Error404} />
</Switch>
)
}
2条答案
按热度按时间ipakzgxi1#
在知道axios请求的响应后,使用state来创建路由怎么样?
大概是这样的:
您可以根据您的响应和其他组件对其进行改进。
yhqotfr82#
我想你看起来是这样的:
react-router-dom
提供了useLoaderData
,可用于路由加载前的数据预取!参考:https://reactrouter.com/en/main/hooks/use-loader-data