React 中的永久状态 - React-Router

Permanent States in React - React-Router

我有一个问题:我有一个 NavBar,它加载一个 AJAX,它检索一个名称和另一个数据。好吧,问题是这些数据将它们存储在声明的组件本身的状态中,作为 NavBar.jsx 并且当我使用路由(react-router)时,组件被安装和拆除失去它的状态,因此,每次改变路线有 重新拨打 AJAX 电话。同样的问题我有一个按钮 'Enter',它的状态为 1,当有人登录时状态为 0,但每次我将路由 returns 更改为状态 1(就好像它没有记录,尽管它实际上被记录了)。我的问题是:如何创建在更改路线时保持不变的状态? (我知道这是不可能的,状态我指的是变量,或者我可以声明的任何东西,每次重新组装组件时都不会改变值,在这种情况下,NavBar,在改变路径时。谢谢。

这可以通过多种方式解决。

  1. 将返回的数据保存在localStorage中,在调用ajax之前检查localStorage,数据是否存在,直接使用即可。

  2. 使用 redux - 这会将状态移动到应用程序级别而不是组件,卸载组件不会删除状态。

  3. 不要在每次导航时重新呈现导航栏(如果在您的应用中可能的话)。 请参阅 react-router 的嵌套路由教程; https://github.com/reactjs/react-router-tutorial/tree/master/lessons/04-nested-routes

此选项意味着路线更改只会重新呈现 "internal page" 而不是像导航栏、子菜单、页脚等不变的东西