ajax - React Router 组件在路由更改时卸载

标签 ajax reactjs redux react-router

我使用 React + Redux 创建了一个 SPA,其中使用了 React-route。 我面临一个问题,每当我切换/about、/contact、/list 等路由时。每次卸载组件时

所以,我需要知道这是预期的行为还是我做错了什么。因为在某些组件中,我正在进行 ajax 调用来获取数据,如果组件被卸载并且用户再次返回...即使数据已在存储中可用,它也会再次进行 ajax 调用。

<Route path="/" component={App}>
    <IndexRoute component={HomePage} />
    <Route path="about" component={About} />
    <Route path="/" component={HomePage} />
</Route>

最佳答案

每次导航到路线时,旧组件都会被删除,新组件会被加载并填充存储值(使用 redux 的连接)。

数据将始终在存储中可用,因此当组件卸载并再次重新加载时,您无需触发新的 ajax 请求。

而且,如果您仍然希望组件始终可用,那么您可以使用单个路由,并使用导航菜单或选项卡显示和隐藏主组件中的组件。但具体取决于 DOM 的组件数量可能会变得很重。

关于ajax - React Router 组件在路由更改时卸载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46384219/

相关文章:

javascript - jquery 存储要在回调中使用的任意元素数据

javascript - react 测试库验证DOM嵌套错误

reactjs - 在 React/Redux 应用程序中将 "global"对象存储在 Redux 存储之外

javascript - React + Redux - 等待操作结束?

javascript - React 组件未在 redux 状态更新时更新

javascript函数返回值混淆

javascript - 如何让 javascript 代码*按顺序*执行

javascript - 使用 php 脚本创建的 AJAX 返回文件

javascript - 未捕获的不变违规 : DetailPage. render()

javascript - 使用connected-react-router在React + Redux中推送状态