我正在构建一个具有服务器端路由并将react / redux作为前端框架的应用程序。
我的react组件之一是一个搜索组件,它根据URL中的搜索参数来呈现结果。当我更新搜索时,网址参数也会通过window.history.pushState
进行更新。
但是,当我单击“后退”按钮时,我的应用程序的某些部分表现出奇怪的行为。搜索结果组件将作为浏览器缓存重新加载,并失去其所有的react / redux功能。但是,搜索栏保留其react / redux功能。
我尝试使用componentWillUnmount拦截事件,但是后退按钮不会导致React完全卸载。
我尝试通过popstate
截取后退按钮,但是无法阻止popstate事件的默认设置。在单击“后退”按钮后,也没有任何事件可以检测到缓存何时完成加载。
我假设React对此有解决方案,但我找不到它。
有没有一种方法可以在没有React路由器的应用程序中解决此问题?
需要明确的是,问题是当我按下“后退”按钮时,我的应用程序失去了它的React / redux功能。