按下后退按钮上的反应JS路由问题

时间:2018-05-20 03:51:20

标签: reactjs react-router

我的一个项目有一个奇怪的要求,要求是 - 1)在我的网络应用程序的初始加载时,它应该加载初始页面(第一页)。 2)如果用户下次来,那么他应该直接重定向到他之前离开的地方 - 我从API获得DROP STAGE。 3)当用户下次来时,他被重定向到之前删除的页面,但在按下后,他可以被重定向到他离开的页面的上一页

到目前为止我所做的是 -

我已经使用react-router-dom进行路由,但发生在我身上的事情是 -

1)用户第一次来到,并通过从API检查DROP阶段将其重定向到第一页 2)当用户再次来时,他有一个DROP STAGE(来自API)所以我将他重定向到DROPPED页面。 3)当用户按下后退按钮(移动设备)时,用户不会停留在页面上而是将其重新定向到DROPPED PAGE,因为我正在检查componentWillMount事件上的DROP STAGE并再次重定向。

我尝试过的解决方法是 -

1)在已删除页面上设置localstorage变量并在后退按钮页面上检查该变量 - 但结果是我将本地存储值设置为空 2)要检查页面的动作,即当用户按下后退按钮时动作变为POP,但问题是当用户第一次来时,动作也是POP - 如何在初始负载下获取动作

如何实现我的功能。请帮忙

1 个答案:

答案 0 :(得分:0)

您需要的是一个模块,在加载应用程序时只调用一次,但不管用户首先访问哪个页面,都应该加载它。 您可以做的是在主路由器文件中添加一个空组件,该组件应该是第一个被调用的组件,并在所有路由中调用。在组件的componentDidMount中,您应该在其他地方处理重定向。因此,重定向只会发生一次,从而自动处理后退动作。