为什么react-router正确处理正则表达式`path`,但同时抛出错误?
发布时间:2020-12-15 20:10:33 所属栏目:百科 来源:网络整理
导读:我有一个组件,我希望在除根路径之外的所有路径上显示.因此,我没有提供Route组件的所有路径,而是写道: Route exact path={/^/.+$/} component={() = divimg src="../../../assets/AndreyBogdanov2.jpg" className="me" //div} / 该正则表达式匹配在开头的斜
我有一个组件,我希望在除根路径之外的所有路径上显示.因此,我没有提供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 不是我在抱怨,但我想知道,它是怎么回事? 在路径prop的文档中,它表示它需要是路径到regexp理解的任何URL,并且在路径到regexp的文档中,它表示正则表达式是一个有效的参数.所以基本上,它是组件的PropTypes在遇到字符串以外的东西时抛出错误. 解决方法
它的工作原理是因为Route唯一能做的就是将对象传递给path-to-regexp,它支持RegExp实例.
基于PropTypes的验证会抛出警告,但不会阻止实际处理属性. 在这种情况下,这可能是一个错误.路径的PropType未正确写入以匹配文档. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |