当前位置: 首页 > 面试题库 >

在react-router-dom中withRouter有什么用?

华和悦
2023-03-14
问题内容

我有时看到人们在withRouter导出组件时将它们包装起来:

import { withRouter } from 'react-router-dom';

class Foo extends React.Component {
  // ...
}

export default withRouter(Foo);

这是做什么用的,什么时候应该使用?


问题答案:

当您在应用程序中包含主页组件时,通常将其包装在这样的<Route>组件中:

<Route path="/movies" component={MoviesIndex} />

这样,该MoviesIndex组件this.props.history便可以访问,因此可以使用重定向用户this.props.history.push

某些组件(通常是标头组件)出现在每个页面上,因此没有包装在中<Route>

render() {
  return (<Header />);
}

这意味着标题不能重定向用户。

要解决此问题,可以在withRouter导出时将标头组件包装在一个函数中:

export default withRouter(Header)

这使Header组件可以访问this.props.history,这意味着标题现在可以重定向用户。



 类似资料:
  • https://reacttraining.com/react-router/web/example/auth-workflow 我在react-router-dom文档中实现的Private路由 PrivateRoute是从Redux存储获取身份验证状态的已连接组件。 我正在尝试使用redux模拟存储和mount from Ezyme测试连接的组件。 即使状态中的身份验证为真,传递给私人路由的组

  • 本文向大家介绍React-Router 4的switch有什么用?相关面试题,主要包含被问及React-Router 4的switch有什么用?时的应答技巧和注意事项,需要的朋友参考一下 Switch排他性路由,采用 ,只有一个路由会被渲染,并且总是渲染第一个匹配到的组件,更好进行路由匹配。

  • 我完全卡住时集成HOC在我的react.js项目。 这是我的路线文件 我对此完全崩溃了,但没有摆脱那个问题。为什么我的控制台中的不显示值 有任何问题与反应和反应路由器的版本 提前谢谢你!!!

  • 两者都有路由、链接等。什么时候使用其中一种?我真的很困惑在哪里使用每一个。服务器端?客户端? https://reacttraining.com/react-router/ 在一些例子中,你需要通过历史,在另一些例子中则不需要。要怎么做? vs 什么时候使用一个或另一个真的很混乱,任何帮助都值得赞赏。

  • 看这段视频,react路由器似乎很容易使用,但我找不到如何在我的代码中导航,因为我想在单击div时链接,而不是使用

  • 本文向大家介绍React-Router 3和React-Router 4有什么变化?添加了什么好的特性?相关面试题,主要包含被问及React-Router 3和React-Router 4有什么变化?添加了什么好的特性?时的应答技巧和注意事项,需要的朋友参考一下 React-Router 4 从设计思想上进行改变,引入动态路由,将路由进行了拆分,将其放到了各自的模块中,不再有单独的 router