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

时间:2017-09-23 20:53:50

标签: 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>

1 个答案:

答案 0 :(得分:2)

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

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

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