javascript - react-router-dom:如何设置 Route 以便它将在两个路径中的任何一个处呈现组件?
问题描述
在我当前的项目中,我有一个<Header />
组件,我只想在用户查看“/library”或“/admin”的页面时呈现。我发现自己有些困惑,因为我正在按照文档中设置的示例进行操作,但是当我这样做时,我在控制台中遇到了错误。
我的路线是这样写的:
<Route
path={['/admin', '/library']}
render={props => (
<Header {...props} />
)}
/>
这可行,<Header />
组件只会在它与这些路径匹配时呈现,但我仍然在控制台中看到以下错误:
警告:道具类型失败:提供给
path
的道具类型无效,应为。array
Route
string
鉴于我正在匹配文档中的示例,我很惊讶我收到了上述错误。有什么我不正确理解的吗?这是我觉得如此令人困惑的主要部分,它让我怀疑我是否做错了什么,特别是因为尽管出现错误消息,我的代码仍按预期工作。
我正在使用 React v16.6 和 react-router-dom v4.3.1。
解决方案
正如您在尝试设置时提到的那样,您会发现它确实有效。由于道具类型,您会收到此警告。我猜它在 4.4.0-beta.4 版本中得到了解决。这个版本还解决了一些其他问题,我上面给出的链接实际上提到了这些问题。
所以,尝试升级到next
:
yarn add react-router-dom@next react-router@next
推荐阅读
- oracle - 如何在 oracle apex 中取消隐藏页面项目
- sql - Hive 排序数组列相对于同一表中的其他数组列
- tcl - 使用 upvar 从 proc 中提取变量
- angular - 当我尝试制作中间件进行身份验证时发生错误
- laravel - 根据 LARAVEL 中的会话数据将用户重定向到不同的页面
- ionic-framework - 为什么不显示我的 ion-select 的默认值?
- c++ - clang-cl PCH 缺少标头包含错误
- jenkins - 如何使用 Jenkins 管道脚本在远程服务器上签出存储库?
- laravel - 硬刷新后显示数据
- python - 如何修复错误“TypeError:forward()... - CUDA