当前位置: 首页 > 面试题库 >

在react-router v4中获取路径参数

葛越
2023-03-14
问题内容

我正在尝试通过我的应用程序建立路由器链接,

在这种情况下,我有三个文件。

App.js

Book.js

DetailedView.js

我在Book的内部建立了一个<Link>仅在悬停时才会出现(在书的封面上)

{this.state.isHovered ? (
   <Link to={`/details/${this.props.book.industryIdentifiers[1].identifier}`}>
<div className="hover-box"></div>
</Link>) : ( <div /> )}

这将带我到/ details / 12345(isbn10号)

我很难理解的是例如setState({iPressedThisBook})在按下时如何
操作,<Link>或者是否可以在以后使用零件/12345创建像过滤器一样的方法

由于AppRoute将安装成…

<Route path="/details/:id" render={() => (
          <BookDetailedView
            bookStateUpdated = {this.bookStateUpdated}
            book = {this.state.books}
          />
)}/>

后来,我想抓住它,:id这样我就可以this.props.book.find(:id)将自己的内部<BookDetailedView>


问题答案:

为了在您的组件中接收路径参数,您需要首先将您的组件与withRouterHOC 连接,react- router以便您可以访问Router道具并paramsmatch道具中获取路径。this.props.match.params.id

样例代码:

import {withRouter} from 'react-router';

class BookDetailedView extends React.Component {
    render() {
        var id = this.props.match.params.id


    }
}
export default withRouter(BookDetailedView) ;

或简单地将其与渲染道具一起传递给路线

<Route path="/details/:id" render={({match}) => (
          <BookDetailedView
            bookStateUpdated = {this.bookStateUpdated}
            book = {this.state.books}
            id={match.params.id}
          />
)}/>

从的React文档 match

比赛

匹配对象包含有关<Route path>URL 如何匹配的信息。match对象包含以下属性:

  • params-(对象)从URL解析的键/值对,对应于路径的动态段
  • isExact-(布尔值)如果整个URL都匹配,则为true(无尾字符)
  • path-(字符串)用于匹配的路径模式。用于构建嵌套的s
  • url-(字符串)URL的匹配部分。用于构建嵌套的s

您将在各个地方访问匹配对象:

  1. 将组件路由为 this.props.match
  2. 将渲染路线设置为({match})=>()
  3. 将子级路由为({match})=>()
  4. withRouter为this.props.match
  5. matchPath作为返回值

如果路线没有路径,因此始终匹配,则将获得最接近的父项匹配项。同样适用于路由器



 类似资料:
  • 如何使用react router v4获取当前路径? 我尝试了以下方法,但没有成功: 错误: 这是我的Routes.js文件:

  • 问题内容: 我正在使用Go开发REST API,但是我不知道如何执行路径映射并从中检索路径参数。 我想要这样的东西: 如果可能的话,我想只使用包而不是Web框架。 谢谢。 问题答案: 如果您不想使用任何可用的路由包,则需要自己解析路径: 将/ provisions路径路由到您的处理程序 然后根据需要在处理程序中拆分路径

  • 在实现持久底部栏时,当单击底部栏中的按钮时,需要恢复以前的路由。 单击底部栏中的按钮时,会保存其当前路线路径(/a/b/c ),并根据按钮的单击恢复先前保存的路线。 从概念上讲,用户会认为每个按钮都是一个工作区,其状态永远不会丢失(包括后退堆栈)。用户可以安全地从一个工作区切换到另一个工作区。 当路由重绕到根时,如何在Flutter中获取当前路由路径?

  • 本文向大家介绍详解react如何在组件中获取路由参数,包括了详解react如何在组件中获取路由参数的使用技巧和注意事项,需要的朋友参考一下 路由参数 假如我们有很多 list 页面,这些页面除了动态内容不同,其他的页面部分都相同,这个时候需要怎么配置路由和组件呢? 这种场景就需要用到路由的参数功能,增加一条包含参数的路由配置。 注意 path 属性中的 :id 就是该路由的参数( param )。

  • 我试图在一个容器中获取反应路由器的当前路径,这样我就可以将其传递给一个子组件,该组件将更改它的可见性过滤器。 更具体地说,我试图使导航菜单突出当前活动的页面。 我正在使用redux、redux、react-router和react-router-redux,这样我就可以从redux存储访问路由器状态。 从react-router-redux的docs中,它说要做这样的事情: 以下是我的容器组件:

  • 问题内容: 我需要配置我的Jenkins服务器,并且需要向Jenkins配置添加Java路径。 但是我是lunix命令的新手,有什么建议吗? 我不知道在哪里安装它! 查看经过验证的答案! 问题答案: 这是解决方案 感谢tecadmin