我有一个具有以下功能的反应组件
const handleNavigate = (clientId) => {
console.log(clientId)
navigate(`/dashboard/clients/${clientId}`)
}
console.log() 显示了我要附加以用于导航功能的 ID。
和
浏览器中的 URL 正在 更新。
但是页面没有变化。
这适用于从 /dashboard/clients
导航到 /dashboard/clients/foo
但它无法从 /dashboard/clients/foo
导航到 /dashboard/clients/bar
clientId 像这样传递到卡中……
const CompanyCard = (props) => {
const { client, showWatchlist, removeDisabled, showRemove, removeType } = props
...
}
然后在卡片中
<CardActionArea
onClick={() => handleNavigate(client._id)}
...
有任何想法吗?
谢谢
更新
在阅读了@redapollos 的建议后,我尝试了 Outlet
和
useRoutes 方法…都不起作用。
import { useRoutes } from 'react-router-dom'
// then in the routes...
{ path: 'clientdetail/:id', element: <ClientDetail /> },
{ path: 'clientdetail/', element: <ClientDetail /> },
这可能是由于使用了 useRoutes
钩子,但我仍在努力。
关于 SO 的另一个问题可能会更快得到答案 - https://stackoverflow.com/a/70009104/13078911
原文由 Ax0n 发布,翻译遵循 CC BY-SA 4.0 许可协议
我刚刚在 React Router Dom Docs v6 中阅读了这个解决方案:
所以,基本上我在路线和 —999
../
之前添加了replace: true
。参考: https ://reactrouter.com/docs/en/v6/hooks/use-navigate
它对我有用,希望它对你有用! (: