我有一个组件想要显示在除根路径之外的所有路径上。因此,不要提供所有路径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
prop 它说它需要是任何 URLpath-to-regexp
理解,并且在path-to-regexp
的文档,它说正则表达式是一个有效的参数。所以基本上,这是组件的PropTypes
当遇到字符串以外的东西时会抛出错误。
这是因为它只能接受字符串值。您还需要插入一些东西path-to-regexp
可以按照描述阅读React 路由器训练 https://reacttraining.com/react-router/core/api/Route/path-string。您可以在其存储库中查找如何编写有效的正则表达式here https://github.com/pillarjs/path-to-regexp.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)