我的浅薄理解导致了渲染 NotFound 页面的一个简单问题......
<Routes>
<Route path="*" element={<NotFound />}/>
<Route path="/" element={<Home />} />
<Route path="/:category/:id" element={<Article />} />
</Routes>
Run Code Online (Sandbox Code Playgroud)
当uri包含一个“/”时,它会渲染匹配的组件或NotFound组件,但是,当uri包含两个“/”时,例如不存在的“/asoejdnxx/acnoiw”,它不会路由到NotFound 页面,但仅呈现一个没有错误的空白页面。
我假设问题是因为 React 正在寻找第三条路线中的参数(具有 :category 和 :id 参数),无论它是否匹配。
我确信不需要在“Article”组件中添加条件,例如如果参数与现有的 :id 不匹配,则渲染其他内容(因为这就是 path="*" 的目的) ,但我找不到重定向或渲染 NotFound 组件的方法。