regex - 为什么react-router正确处理正则表达式 `path`,但同时抛出错误?

标签 regex reactjs react-router

我有一个组件想要显示在除根路径之外的所有路径上。因此,我没有提供 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 的文档,它说 regex 是一个有效的参数。所以基本上,组件的 PropTypes 在遇到字符串以外的内容时会抛出错误。

最佳答案

这是因为它只能接受字符串值。您还需要插入 path-to-regexp 可以读取的内容,如 React Router Training 中所述。 。您可以在其存储库 here 中查找如何编写有效的正则表达式.

关于regex - 为什么react-router正确处理正则表达式 `path`,但同时抛出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50438628/

相关文章:

reactjs - React Router 传递参数。如何?

reactjs - 使用 React 上下文来维护用户状态

python - 使用 Regex Python 提取字符串中的字符串

java - 如何在正则表达式的帮助下使用 replaceAll() 方法忽略字符串中的特殊字符 ($ ^ + () {} 等)

reactjs - 如何在 3js 中对 GLTF 元素进行分组和拖放

reactjs - 推送Array数据来渲染View?

javascript - 有没有办法用 React native 录制音频并将其存储为 wave 文件?

node.js - React-Router 无法在组件内导入组件

javascript - 匹配半在标签内、一半在标签外的字符串

javascript - 使用正则表达式从日期和时间获取时间