reactjs - 如何在react router dom (4.xx)中处理空URL参数

标签 reactjs react-router-v4 react-router-dom

我的路线定义如下:

<Route path='/result/:searchTerm' component={Result}/>

效果很好。例如 localhost:3000/result/cat 页面有效。但是,当用户决定从 URL 中删除 :searchTerm 并仅打开 localhost:3000/result/ 时,它会显示空页面。没有错误或任何东西。只是空白页面。它甚至也没有击中我的组件 {Result}

所以我的疑问是如何处理这种情况。?假设我想将尝试在没有 :searchTerms 的情况下打开 /result/ 的用户重定向到我的索引页。?如何做到这一点?

最佳答案

我相信您只需为可选参数添加问号即可,因此:

<Route path='/result/:searchTerm?' component={Result} />

这是有效的,因为 React Router 4 使用 path-to-regexp解释其路径属性。

要回答问题的最后部分,您可以简单地测试 :searchTerm 的值,如果未定义,则重定向用户。

关于reactjs - 如何在react router dom (4.xx)中处理空URL参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47668092/

相关文章:

reactjs - React Router + Axios 拦截器。如何进行重定向?

javascript - 使用 React Router v4 时,对象作为 React 子对象无效

javascript - 如何使用 React Router v4 访问 React 应用程序之外的历史实例?

reactjs - 在单元测试中,dispatch(action) 不会立即更新 redux 状态

javascript - React Router - 如何动态替换字符串中的参数

javascript - 递归方法返回未定义

reactjs - 从react-router-dom url中删除哈希

reactjs - 索引路由旁边的 React router v4 通配符

javascript - 未捕获的类型错误 : Cannot read property 'enqueueSetState' of undefined at Component. setState

reactjs - 如何应用 MathJax/KaTex 渲染 React 组件