小编t_r*_*_rm的帖子

React-Router 在路由更改时重新安装组件

我有一个连接(到 redux 存储)的组件。我有多个路由都在渲染道具中使用此组件。每次路线改变时,整个组件似乎都被重新安装。有什么办法可以防止这种情况发生吗?我的第一个想法是,我可能每次都会重新实例化组件,因为 render prop 是一个响应路由器调用的函数?这是一些代码:

const routeFunction =
  (resource, props) => <CrudWrapper resource={resource} modelId={props.match.params.id} />

export default crudResources.map(resource => ({
  path: `/${resource}/:id?`,
  link: `/${resource}`,
  resource,
  // eslint-disable-next-line react/prop-types
  render: routeFunction.bind(null, resource)
}));
Run Code Online (Sandbox Code Playgroud)

然后将路由映射到 JSX 中: {routes.map(route => <Route key={route.path} {...route} />)}

我将路由包裹在 a 中<Switch>,并认为这可能会导致问题,但即使在删除开关之后,componentWillMount每次都会调用组件的方法。

javascript jsx reactjs react-router react-redux

6
推荐指数
1
解决办法
4451
查看次数

标签 统计

javascript ×1

jsx ×1

react-redux ×1

react-router ×1

reactjs ×1