【发布时间】:2018-05-25 12:57:10
【问题描述】:
我在 React Router 文档中看到您将 match 属性传递给组件,并且您可以调用 match.url,但您似乎从未真正向组件传递任何内容。那么究竟什么是 match,你从哪里得到它?
【问题讨论】:
标签: javascript reactjs react-router
我在 React Router 文档中看到您将 match 属性传递给组件,并且您可以调用 match.url,但您似乎从未真正向组件传递任何内容。那么究竟什么是 match,你从哪里得到它?
【问题讨论】:
标签: javascript reactjs react-router
希望这会有所帮助:https://reacttraining.com/react-router/web/api/match
你在props中得到match,通常当你的组件被Route调用时你会得到它,你可以将它作为常规props传递给其他组件来提取或使用信息。
location 在与 react-router 交互时也非常有用。我通常根据 isExact 标志使用 match 进行渲染和重定向,并使用 location 来获得浏览器的实际 URL。
【讨论】:
请参见 match() 是纯 JavaScript 的 String 属性。因此,如果在 JSX 中使用 match,那么 react 也将其设置为自定义属性 match,这样它就不会与 main match() 冲突,并且它是 React Router 的全局对象。
我遇到过这个问题并且知道不需要担心它应该在 props 或 state 中传递。实际上它是 JSX 中的自定义属性,与实际 String.prototype 的属性不冲突。
所以不要弄乱你的头,只要把它想象成match() 属性,它来自 React Router 中专门使用的全局对象
【讨论】: