【问题标题】:Multiple RouteHandler for a Route一个路由的多个 RouteHandler
【发布时间】:2015-09-13 07:06:27
【问题描述】:

我需要根据路线显示多个导航项。 例如

var routes = (
 <Route path="/" handler={Wrapper}>
  <Route handler={NavItemMenu} />
  <Route handler={NavItemSave}/>
 </Route>
);

然后像这样使用它

var Nav = React.createClass({
 render: function() {
    return (
        <div className="p-nav-left">
         <ul className="p-navbar-nav">
          <RouteHandler/>   
         </ul>
        </div>
      );
    }
   });

我希望它同时显示“NavItemMenu”和“NavItemSave”。

同样,我想为不同的路径显示不同的项目。 我该怎么做呢?对于单个路由,如何创建 Multiple Handler?

【问题讨论】:

  • 你不会只在 Wrapper 处理程序中包含这些组件吗?您可以要求它们,然后执行 &lt;NavItemMenu /&gt;&lt;NavItemSave /&gt;

标签: reactjs reactjs-flux react-router


【解决方案1】:

这不是嵌套的情况,而是基于某些东西的值的替代路由——也许是传递给Wrapper 的道具?我不得不在这里猜测一下,但也许这就是你想要的?

let Wrapper = React.createClass({
    // bunch of code omitted
    render() {
        let contents = null;
    if (this.props.some_value === "x") {
        contents = <NavItemMenu />
    } else {
        contents = <NavItemSave />
    }
    return contents;
    }
});

【讨论】:

  • 我认为这不是正确的做法。例如,如果一个页面有组件 A、B、C,现在当你移动到另一个页面时,它有组件 A、D、E。我无法使用 react-router 实现这一点
  • 组件 B 也有多个子组件 B1 B2 B3 B4。对于某个路线,我只想显示 B1 和 B2。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-26
  • 2016-08-30
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 2019-10-14
相关资源
最近更新 更多