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

标签 reactjs parameters react-router

拥有以下 React Router

const AppRoutes = (
  <Route path="/" handler={Properties}>
    <DefaultRoute handler={PropertyList} />
    <Route path="property/:propId" handler={PropertyDetail}/>
    <NotFoundRoute handler={NotFound} />
  </Route>);

Router.run(AppRoutes, Router.HashLocation, (Root) => {
  React.render(<Root />, document.getElementById('filter-content'));
});

我尝试在子组件内部构建动态链接,在这里我进行了测试

<Link to="/property/" params={{ propId: "123"}} ><img src={this.props.data.picture} 
                         data-srcset="http://placehold.it/350x150"  alt="" className="lazyload auto-height" 
                                 data-sizes="auto"/>
                    </Link>

但是点击链接 propId 没有被传递,我做错了什么?

最佳答案

为了使其工作,您需要在 Link 组件的 to 属性中使用路由名称,否则路由器无法知道您指的是哪个路由定义,并且因此如何处理 propId 参数。

首先,为您的路线定义一个名称

<Route name="property" path="property/:propId" handler={PropertyDetail}/>

然后在生成链接时使用该名称:

<Link to="/property/:propId" params={{ propId: "123"}} >

关于reactjs - React Router 传递参数。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31771210/

相关文章:

参数的java通用类型与抽象类

javascript - 处理来自外部服务器的重定向

css - react 组件之间的动画过渡

javascript - 动态单选按钮表单 react

java - 将 ActionListener 添加到未知对象

parameters - LISP 参数绑定(bind)

javascript - React router 仅替换 history.push 上的最终路由

javascript - React Router 仅在刷新页面后才起作用

reactjs - 如何使用 apollo 查询的结果调度操作?

javascript - React - 带 Bootstrap 的全屏模式