Jaf*_*ker 5 regex reactjs react-router
我有一个组件想要显示在除根路径之外的所有路径上。因此,我没有提供组件的所有路径Route,而是编写了以下内容:
<Route exact path={/^\/.+$/} component={() =>
<div><img src="../../../assets/AndreyBogdanov2.jpg" className="me" /></div>
} />
Run Code Online (Sandbox Code Playgroud)
该正则表达式匹配开头斜杠后包含任何字符的所有字符串。它按预期工作,但是在控制台中我看到一个错误:
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
Run Code Online (Sandbox Code Playgroud)
我并不是在抱怨,而是想知道,它是如何运作的?
在 prop 的文档中,path它说它需要是任何可以path-to-regexp理解的 URL,而在 的path-to-regexp文档中,它说 regex 是一个有效的参数。PropTypes所以基本上,当遇到字符串以外的内容时,组件会抛出错误。
它之所以有效,是因为唯一Route要做的就是将对象传递给path-to-regexp,它确实支持RegExp实例。
PropTypes基于验证的方法会引发警告,但不会阻止属性的实际处理。
在这种情况下,这可能是一个错误。PropTypeforpath的书写不正确,与文档不匹配。
| 归档时间: |
|
| 查看次数: |
1902 次 |
| 最近记录: |