reactjs - 我可以为两条路线使用相同的路线处理程序吗

标签 reactjs react-router

我定义了这两条路线:

<Route name='register' handler={Register} >
    <Route name='registerpromotion' path='/registerpromotion/:promotionCode' handler={Register}/>
</Route>

因此这两个路由都使用相同的处理程序,称为 Register。

对于registerpromotion路线,我传递一个属性,而对于register路线,我不传递。

我无法让它工作 - PromotionCode 属性始终未定义。

有谁知道是否可以对两个路由使用相同的处理程序?

非常感谢!

最佳答案

此代码来自react-router issue #410作者:rpflorence:

/** @jsx React.DOM */
var React = require('react');
var Router = require('react-router');
var Route = Router.Route;
var Routes = Router.Routes;
var Link = Router.Link;

var Foo = React.createClass({  
  render: function() { 
    return (
      <div>
        <p>hello</p>
        <p>stuffId: {this.props.params.stuffId}</p>
        <ul>
          <li><Link to="root">top</Link></li>
          <li><Link to="stuff" params={{stuffId: 'one'}}>one</Link></li>
          <li><Link to="stuff" params={{stuffId: 'two'}}>two</Link></li>
        </ul>
        <this.props.activeRouteHandler />
      </div>
    );
  }
});

var routes = (
  <Routes>
    <Route name="root" path="/" handler={Foo}>
      <Route name="stuff" path=":stuffId" handler={Foo}/>
    </Route>
  </Routes>
);

React.renderComponent(routes, document.body);

关于reactjs - 我可以为两条路线使用相同的路线处理程序吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26357212/

相关文章:

javascript - useLocation 无法识别状态

javascript - 你如何使用 google maps api 进行 mocha 测试,因为没有 html 来添加 google maps api 需要的脚本标签

javascript - 如何在React中调用api之前设置状态

reactjs - 重复的字符串索引签名.ts(2374)

javascript - 将一个组件导航到另一个组件时 react 中的最小 react 错误

reactjs - React Router 中的 props.history.listen 是否需要在 useEffect 中清理?如果是这样,正确的方法是什么?

javascript - 如何获取React Router中问号后面的参数?

javascript - 动态添加的view没有样式功能React Native

javascript - 如何防止React组件点击事件冒泡到文档?

javascript - 通过react-router重复使用相同的组件两次