首页 > 解决方案 > react-router-dom:如何设置 Route 以便它将在两个路径中的任何一个处呈现组件?

问题描述

在我当前的项目中,我有一个<Header />组件,我只想在用户查看“/library”或“/admin”的页面时呈现。我发现自己有些困惑,因为我正在按照文档中设置的示例进行操作,但是当我这样做时,我在控制台中遇到了错误。

我的路线是这样写的:

<Route
  path={['/admin', '/library']}
  render={props => (
    <Header {...props} />
  )}
/>

这可行,<Header />组件只会在它与这些路径匹配时呈现,但我仍然在控制台中看到以下错误:

警告:道具类型失败:提供给path的道具类型无效,应为。arrayRoutestring

鉴于我正在匹配文档中的示例,我很惊讶我收到了上述错误。有什么我不正确理解的吗?这是我觉得如此令人困惑的主要部分,它让我怀疑我是否做错了什么,特别是因为尽管出现错误消息,我的代码仍按预期工作。

我正在使用 React v16.6 和 react-router-dom v4.3.1。

标签: javascriptreactjsreact-router

解决方案


正如您在尝试设置时提到的那样,您会发现它确实有效。由于道具类型,您会收到此警告。我猜它在 4.4.0-beta.4 版本中得到了解决。这个版本还解决了一些其他问题,我上面给出的链接实际上提到了这些问题。

所以,尝试升级到next

yarn add react-router-dom@next react-router@next  

推荐阅读