【发布时间】:2019-03-14 12:34:00
【问题描述】:
我有一个 React 应用程序,其中包含一个主 App.js 文件,该文件保存了我的初始状态。然后我设置了一些路由来浏览我的应用程序。
在其中一条路线中,我有一个按钮,当按下它时会处理一个设置状态。我知道这很有效,因为我已经在控制台记录了状态的变化。但是,它也会调用:
window.location.href = '/';
然后这会将我们路由到我们的主页。但是,一旦主页呈现,状态就会恢复到其初始设置,如 App.js 中所述。我不知道为什么一旦我被重新路由到网站的另一部分,状态就没有得到维护。鉴于我使用的是 react-router,这是否意味着我需要使用 redux 来处理应用程序的状态?
【问题讨论】:
-
你应该使用通过 react-router 导入的历史 API:reacttraining.com/react-router/web/api/history
-
每当一个组件被初始化时,该组件的状态也会被初始化。由于您正在导航到一个新组件,因此您的状态将被重新初始化。如果您希望在父级维护道具并从子级进行更改,请查看这篇文章:stackoverflow.com/questions/22639534/… 我还建议您查看 react-router 文档,以便更好地了解如何导航和传递道具到和来自组件:reacttraining.com/react-router
标签: reactjs react-router state