当用户点击EDIT
图标时,将打开一个页面。在用户submit
记录之后,如果成功,我们的页面应该重定向到ListCertificate
。
当用户点击编辑按钮时,下面的行将运行。编辑表单将被打开。
<Link to={`/${props.certificate.id}/edit` }>Edit</Link>
在用户成功保存后,我们的页面应该重定向到ListCertificate
组件。
所以我就写了
.then(function (response: any) {
console.log(response);
toast("🦄 Record updated successflly", {
position: "top-right",
autoClose: 2000,
hideProgressBar: false,
closeOnClick: true,
pauseOnHover: true,
draggable: true,
progress: undefined
});
return <Redirect to='/listcertificate' />
})
这条线路不通。
return <Redirect to='/listcertificate' />
在app.js中,我使用下面的命令调用了ListCertificate。
<Route path ="/listcertificate" component={Listcertificate} ></Route>
localhost:4200/listcertificate
工作正常。但它没有从editcomponent重定向到相同的页面。
3条答案
按热度按时间mlnl4t2r1#
通过
react-router-dom
v6,你可以使用useNavigate
钩子来编程导航。Docs0md85ypi2#
你忘了在
<Navigate/>
里面添加replace
prop 。<Navigate replace>
prop告诉路由器在更新URL时使用history.replaceState()
,这样/条目就不会出现在历史堆栈中。这意味着当有人单击后退按钮时,他们将出现在他们导航到/
* read more之前的页面。更改此
<Redirect to='/listcertificate' />
对这个
<Navigate to='/listcertificate' replace />
或这个
<Navigate to='/listcertificate' replace={true} />
toe950273#
如果不在
JSX
中,请使用useHistory
而不是Redirect
:如果你使用的是React Router Dom
v6
,使用useNavigate
: