gpt4 book ai didi

reactjs - React-router 与查询字符串不匹配

转载 作者:行者123 更新时间:2023-12-03 13:54:48 25 4
gpt4 key购买 nike

我的路线定义如下:

 <Router history={browserHistory}>
<Route path="/" component={App}>
<Route path="experiments">
<IndexRoute component={Experiments} />
</Route>
<Route path="*" component={NoMatch}/>
</Route>
</Router>

当我访问/experiments时,事情按预期进行,并且实验组件被渲染。但是,当我手动输入带有查询参数的 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 时)。但是,当存在包罗万象的路由时,即使它位于优先级列表的底部,也不会匹配任何路由。

最佳答案

当您手动输入路线时,您需要使用 historyApiFallbackhistory={browserHistory} 来加载路线。

historyApiFallback 所做的就是让您的服务器为您尝试访问的任何 URL 返回 index.html,并且因为您的路由是根据 配置的>index.html 这样你就可以直接访问任何路由url

在你的webpack中添加

devServer: {
historyApiFallback: true;
}

关于reactjs - React-router 与查询字符串不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41274996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com