React 和 React-Router:通过函数调用进行路由,参数传递到路由中,而不是单击 <Link>

Posted

技术标签:

【中文标题】React 和 React-Router:通过函数调用进行路由,参数传递到路由中,而不是单击 <Link>【英文标题】:React and React-Router: Routing through function call with params passed into the route instead of clicking <Link> 【发布时间】:2018-04-22 15:36:27 【问题描述】:

如何通过 react-router 中的函数调用传递参数进行路由?

例如,我有这个链接,当点击路由到带有传入参数的不同网址时:

<Link key=category.name to=`/category/$category.name` params=category: category.name >category.name</Link>

假设我想通过一个函数调用来模拟点击上述链接时会发生什么,该怎么做呢?

clickHandler()
//What function should be called to do the routing through a function call?


【问题讨论】:

React-router: How to manually invoke Link?的可能重复 【参考方案1】:

使用history 对象。

如果渲染Link 的组件是由路由器渲染的,那么您在this.props 中有一个可以使用的history 属性。

clickHandler()
    const 
        history
        category // ??
     = this.props
    history.push(`/category/$category.name`);

【讨论】:

以上是关于React 和 React-Router:通过函数调用进行路由,参数传递到路由中,而不是单击 <Link>的主要内容,如果未能解决你的问题,请参考以下文章

[react-router] React-Router怎么获取URL的参数?

react-router路由之routerRender方法(v5 v6)

23.react-router 路由

react-router学习笔记

react-router学习笔记

如何使用 onClick 方法通过 react-router 传递道具