有没有办法强制React-Router<Link>
从路径加载页面,即使当前位置已经是该页面?我似乎在反应路由器文档中找不到任何提及这一点的信息。
我们在“申请”路线上有一个页面,该页面加载带有英雄图像、一些解释性文本等的登陆页面,以及一个“申请此计划”按钮,该按钮可交换充当申请表的内容。这一切都发生在同一个“应用”路径上,因为用户不应该先点击登陆页面就无法直接导航到此表单。
但是,当他们打开此表单并再次单击导航菜单中的应用链接时,整个页面应该像第一次安装时一样重新加载,让他们再次“返回”(但实际上是前进)到登陆页面。
相反,单击<Link>
什么都不做,因为react-router看到我们已经在“应用”页面上,所以不会卸载当前页面然后安装另一个页面。
有没有办法force它在安装请求的页面之前卸载当前页面,即使它是针对用户应该已经在的页面? (通过<Link>
例如财产?)
注意:这个问题是在 React-Router 指的是 v5 时发布的,虽然这篇文章中的问题与特定的 React-Router 版本无关,但解决方案却不是。因此,公认的答案是 React-Router v6 的解决方案,所以如果你仍在使用 v5,首先也是最重要的是升级你的 React-Router 版本,但如果你绝对不能,接受的答案不会为你工作,你会想要这个答案反而。
在“路由”组件中,指定一个随机密钥。
<Route path={YOURPATH} render={(props) => <YourComp {...props} keyProp={someValue} key={randomGen()}/>} />
当反应看到不同的键时,它们将触发重新渲染。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)