首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React路由器Dom useNavigate会导致重新加载/重新呈现整个应用程序,从而清除所有状态。

React路由器Dom useNavigate会导致重新加载/重新呈现整个应用程序,从而清除所有状态。
EN

Stack Overflow用户
提问于 2022-09-18 10:43:54
回答 1查看 228关注 0票数 1

当我想执行编程导航或按钮单击返回导航时,useNavigate()将使所有状态、redux和上下文恢复为初始值。例如

代码语言:javascript
复制
                <IconButton 
                onClick={()=>{
                    navigate(-1)
                }}>Go back
                </IconButton>

单击以返回到前一页时,页面上的所有状态将恢复为初始状态。有什么解决办法吗?

是的,我试过以下几种方法

代码语言:javascript
复制
                <IconButton 
                onClick={()=>{
                    navigate(-1, { replace: true })
                }}>Go Back
                </IconButton>

还有..。

代码语言:javascript
复制
                <IconButton 
                onClick={()=>{
                    navigate(-1, { replace: false })
                }}>Go back
                </IconButton>

但都不管用。如何在执行编程导航时保持以前的状态?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-18 12:33:03

我认为,如果您使用react路由器的链接元素导航,或者在Parent and Child元素之间推送到它的历史记录,那么父组件的状态应该保持不变。但是,如果要在兄弟姐妹之间导航,则需要使用某种存储(会话存储、本地存储或从某些DB读取)来持久化状态。

另一种解决方案是使用高阶组件,它将是顶级组件(高于反应性路由器),因此,当位置发生变化时,您不会丢失状态中的信息。换句话说,你必须有一个普遍的状态。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73762051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档