我的路线定义如下:阵营路由器不匹配的查询字符串
<Router history={browserHistory}>
<Route path="/" component={App}>
<Route path="experiments">
<IndexRoute component={Experiments} />
</Route>
<Route path="*" component={NoMatch}/>
</Route>
</Router>
当我访问3210,一切按预期工作和实验部分呈现。但是,当我手动输入带查询参数的URL时,例如:/experiments?offset=50
,路由不匹配!
但是,当我使用<Link to={{ pathname='/experiments', query={offset:50} }} />
导航时,事情按预期工作。实验组件已呈现,并且this.props.location.query.offset
设置为50
。
手动(或复制粘贴)输入带查询字符串的URL时,如何获得路线匹配?
似乎路线应自动匹配url-with-query-string-not-matching-react-router-route,但它似乎并没有为我工作。
编辑: 我缩小了问题的包罗万象的路线path="*"
。当我删除这条路线时,一切正常(例如,当我访问/experiments?offset=50
时)。但是当catch-all Route存在时,即使它位于优先级列表的底部,也不会匹配任何路由。
请返回并编辑您的帖子,而不是在评论中添加新信息。参考:[询问],下次请出示[MCVE]。在询问之前,您甚至也懒得完成2分钟的现场参观。 –
道歉。我编辑了我的帖子以添加新的信息。 – saiprashanth
非常好。我刚刚投票赞成你这样做。有一天,也许你会编辑新的用户问题,并告诉他们相同或类似的东西。 –