我有一个具有以下组件的应用程序
|__Base - /home/Base
|__尝试 - /home/Base/:try
|__报告 - /home/Base/:try/report
Base 是用户点击按钮并点击 Try 的起始屏幕,在尝试了一些事情之后,他点击提交,生成报告,其中有一些后端交互,当获取数据时,它会加载报告。
所以我想要的是当用户点击报告页面的后退按钮时,他不应该登陆 Try 页面,而是登陆 Base 页面。
对于工作,我通过react-router文档就去尝试使用history.replace
上componentWillUnmount
的报告页
this.props.history.replace(`/home/Base`, {
pathname: `/home/Base`,
search: null,
state: {
isActive: true
}
}, null);
如果报告页面已完全加载并且我按下后退按钮,它会起作用,但也会调用尝试渲染方法,然后将我带到基础页面,但如果报告未完全加载,我在加载微调器处于加载状态时按下后退按钮在进行中,它仍然会转到基本页面,但也会安装和卸载 TRY 组件。
我在这里遗漏了什么,是什么导致它挂载/卸载或渲染前一个组件,然后加载基本组件,即使我替换了历史堆栈?