React-router子路由导航无法正常工作

时间:2016-06-27 04:20:05

标签: reactjs react-router

我正在尝试按照react-router教程here尝试使用子路由进行导航,但它不起作用。

例如,给定此路线定义:

export default <Route path="wifi" component={ Wifi }>
    <IndexRoute component={WifiView}/>
    <Route path="list" component= {WifiListView}/>
    <Route path="connect" component={WifiConnectView}/>
</Route>;

如果我们在"/"并导航到"/wifi"我们就是好人。然而,如果WifiView来自"/wifi"我们呼叫hasHistory.push('list')它没有找到路线,则会显示"/"。我假设路线是相对于它的当前位置,因为我没有使用hashHistory但是没有被尊重。

该文件也说:

  

您还可以使用路由器在“上下文”中提供的路由器。第一,   你在组件中询问上下文,然后就可以使用它了......

但我没有看到任何提到在TypeScript中如何做到这一点,所以我使用静态_orderStatus = Request.QueryString["order"] != null ? Request.QueryString["order"] : _orderStatus != "" ? _orderStatus : "pending";

这看起来像新手问题,但我无处可问,因为建议的Discord频道都已经死了......任何人都可以帮忙吗?

谢谢!感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

好的,终于找到了对我的问题的回复......

  1. 至于今天,react-router不支持相对导航,这意味着,它必须导航到整个路径链,这就是hasHistory.push('list')不起作用的原因。
  2. 为了获得context.router我们需要使用withRouter高阶组件,但这些组件未在他们提供的TypeScript定义文件中公开。