reactjs – React路由器,浏览器后退按钮后如何恢复状态?
我试图找出当用户使用后退/前进浏览器按钮导航时如何使我的React SPA应用程序保持状态.例如.用户填写表格,然后他前后移动,表格自动恢复.
我回顾了很多JavaScript路由器,但似乎没有一个正确解决这个问题……(甚至根本没有). 目前我正在使用React Router 4,这是我采用的模式: >以编程方式离开页面时,我首先使用history.replace(this.state)保存当前页面的状态;然后我用history.push(newLocation)移出页面 我的问题是:上述模式是否正确?建议?有没有更好的和广泛采用的方式?
过了一会儿,我发现了一个合理的解决方法:
> in react,在每个this.setState()之后,我使用window.history.replaceState({key:history.location.key,state:this.state})保持状态与历史同步 这个解决方案似乎很好用,唯一的小缺点是: > state必须是可序列化的 总的来说,我编写了一个PageComponent,它扩展了Component,可以执行所有初始化/恢复工作;它还会覆盖this.setState以使其与历史记录自动同步并避免异步烦恼. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- JavaScript – XCode构建不更新JS和HTML
- c# – MediaElement&DispatcherTimer严格计时应用程序
- sqlite3编程 & 示例
- 配置postgreSQL允许外部连接
- actionscript-3 – 在儿童电影剪辑上的as3 gotoandplay帧
- Swift中的iOS登录/注销实现
- ruby-on-rails – 如何在Rails 5.1中关闭BIGINT主键
- flex 截取字符串
- ruby-on-rails – ruby?? on rails link_to删除方法无法正常
- sqlite应用【android菜鸟修行记(二)】8.30.2013