我使用 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/