为什么后退按钮会破坏我的React应用程序的某些部分?

时间:2019-02-12 00:31:42

标签: javascript reactjs browser-history

我正在构建一个具有服务器端路由并将react / redux作为前端框架的应用程序。

我的react组件之一是一个搜索组件,它根据URL中的搜索参数来呈现结果。当我更新搜索时,网址参数也会通过window.history.pushState进行更新。

但是,当我单击“后退”按钮时,我的应用程序的某些部分表现出奇怪的行为。搜索结果组件将作为浏览器缓存重新加载,并失去其所有的react / redux功能。但是,搜索栏保留其react / redux功能。

我尝试使用componentWillUnmount拦截事件,但是后退按钮不会导致React完全卸载。

我尝试通过popstate截取后退按钮,但是无法阻止popstate事件的默认设置。在单击“后退”按钮后,也没有任何事件可以检测到缓存何时完成加载。

我假设React对此有解决方案,但我找不到它。

有没有一种方法可以在没有React路由器的应用程序中解决此问题?

需要明确的是,问题是当我按下“后退”按钮时,我的应用程序失去了它的React / redux功能。

0 个答案:

没有答案