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

Jit*_* Kt 5 reactjs react-router-v4 react-router-dom

我的路线定义如下:

<Route path='/result/:searchTerm' component={Result}/>
Run Code Online (Sandbox Code Playgroud)

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

所以我怀疑如何处理这种情况.说我想重定向谁尝试打开该用户/result/没有:searchTerms到我的索引页?怎么做.?

Ric*_*her 12

我相信你可以为可选参数添加一个问号,所以:

<Route path='/result/:searchTerm?' component={Result} />
Run Code Online (Sandbox Code Playgroud)

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

要回答问题的最后部分,您只需测试其值,:searchTerm如果未定义,则重定向用户.