如何在 React-Router 2.5 中创建动态链接到属性

Posted

技术标签:

【中文标题】如何在 React-Router 2.5 中创建动态链接到属性【英文标题】:How to create a dynamic Link to attribute in React-Router 2.5 【发布时间】:2016-11-11 04:29:12 【问题描述】:

(免责声明:我是 React 和 React-Router 的新手,所以这对于更熟悉的人来说可能很明显)

我正在使用带有 ES6 的 React-Router 2.5.2 创建一个简单的项目,我有一个可行的解决方案,但感觉它可能不是“React Router 方式”。我有这条路线:

<Route path="lists/:listId" component=List/>

在其他地方我有一个链接:

<Link to=`/lists/$props.list._id`>props.list.name</Link>

这是构成传递动态内容的“to”属性的首选方式吗?还是我从根本上误解了 React Router?

【问题讨论】:

嗯,是的。如果您需要对位置进行更多控制,可以改为传递 LocationDescriptor。 【参考方案1】:

你做得对! :)

正如您在文档中看到的,这是传递 to 属性的正确方法:

https://github.com/reactjs/react-router/blob/v2.5.2/docs/API.md#link

在以前的 React Router 版本中,有一个名为 params 的道具,您可以在其中传递所有路由参数。

https://github.com/ReactTraining/react-router/blob/v0.13.6/doc/03%20Components/Link.md#params

但我认为 React Router 团队决定让事情变得简单,所以你决定如何构建你的路由。此外,使用 ES6 模板非常适合。

【讨论】:

网址无效:github.com/reactjs/react-router/blob/0.13.x/doc/03%20Components/… 刚刚用正确的链接更新了答案 (github.com/ReactTraining/react-router/blob/v0.13.6/doc/…) @Chandresh【参考方案2】:

react-router 的 API 文档中以完全相同的方式完成:

// change the activeClassName
<Link to=`/users/$user.id` activeClassName="current">user.name</Link>

参考:https://github.com/reactjs/react-router/blob/master/docs/API.md#link

【讨论】:

以上是关于如何在 React-Router 2.5 中创建动态链接到属性的主要内容,如果未能解决你的问题,请参考以下文章

如何从一堆jpgs创建gif动画

在win7上的不同目录中的wamp 2.5中创建vhost返回禁止错误

在win7上的不同目录中的wamp 2.5中创建vhost返回禁止错误

React-router v5.2 路由不工作,只显示主页

如何在 react-router 中使用普通的锚链接

如何使用 react-router 重新加载页面?