【发布时间】:2021-12-20 14:45:42
【问题描述】:
在 react-router v5 中,我创建了这样的历史对象:
import { createBrowserHistory } from "history";
export const history = createBrowserHistory();
然后传递给Router:
import { Router, Switch, Route, Link } from "react-router-dom";
<Router history={history}>
... my routes
</Router>
我这样做是为了有机会了解组件之外的使用历史:
// store action
logout() {
this.user = null;
history.push('/');
}
通过这种方式,我将逻辑移到了 store 中,并且组件尽可能保持干净。但是现在,在反应路由器 v6 中我不能做同样的事情。我仍然可以在我的组件中使用useNavigate() 进行导航,但我无法创建navigate 以将其用于我的商店。有没有其他选择?
【问题讨论】:
-
@ColdAtNight 谢谢,但没有指定如何在组件之外取消
navigate。这正是我所需要的
标签: javascript reactjs react-router react-router-dom