import { LoadingContext } from "react-router-loading";
const loadingContext = useContext(LoadingContext);
const loading = async () => {
//fetching some data
//call method to indicate that fetching is done and we are ready to switch
loadingContext.done();
};
3条答案
按热度按时间f2uvfpb91#
是的,在并发模式下,
useTransition()
已启用,您可以创建一个自定义路由器,将history object上的每个navigation methods封装在暂停转换中:示例用法如下所示:
如果你想在上一条路线上无限期等待,请将
timeoutMs
设置为Infinity
。在上面的例子中,将其设置为2000
应该会在上一条路线上等待最多2秒,然后如果请求的路线的代码还没有下载,则显示fallback
。oxiaedzo2#
这里是另一个选项:而不是挂起网址更改你可以挂起屏幕更改.
包react-router-loading允许在切换屏幕之前显示加载条并获取一些数据。
只需使用此软件包中的
Switch
和Route
,而不要使用react-router-dom
:添加
loading
prop 到你想等待的路线:然后,在
MyComponent
中的获取逻辑的末尾添加loadingContext.done();
:wsewodh23#
对于React路由器v6:
创建挂起路由器:
以及在应用程序tsx中:
**这个答案是通过@Jonathan Perlow的评论中的链接给出的。我之所以再次发布它,是因为回应没有答案那么突出,所以没有必要去其他网站。