【发布时间】:2018-05-20 19:27:08
【问题描述】:
我有一个想要显示在除根路径之外的所有路径上的组件。因此,我没有提供Route 组件的所有路径,而是这样写:
<Route exact path={/^\/.+$/} component={() =>
<div><img src="../../../assets/AndreyBogdanov2.jpg" className="me" /></div>
} />
那个正则表达式匹配所有在斜线后面有任何字符的字符串。它按预期工作,但是,在控制台中我看到一个错误:
Warning: Failed prop type: Invalid prop `path` of type `regexp` supplied to `Route`, expected `string`.
in Route (created by App)
in App
in Router (created by BrowserRouter)
in BrowserRouter
不是我在抱怨,而是我想知道,它是如何工作的?
在path 属性的文档中,它说它需要是path-to-regexp 理解的任何URL,在path-to-regexp 的文档中,它说正则表达式是一个有效的参数。所以基本上,是组件的PropTypes 在遇到字符串以外的内容时抛出错误。
【问题讨论】:
标签: regex reactjs react-router