你如何明确地检测用户是否按下了浏览器中的后退按钮?
如何使用#URL系统在单页Web应用程序中强制使用页内后退按钮?
为什么地球上没有浏览器按钮触发他们自己的事件!?
在react-router v5中我创建了这样的历史对象:
import { createBrowserHistory } from "history";
export const history = createBrowserHistory();
Run Code Online (Sandbox Code Playgroud)
然后将其传递给路由器:
import { Router, Switch, Route, Link } from "react-router-dom";
<Router history={history}>
... my routes
</Router>
Run Code Online (Sandbox Code Playgroud)
我这样做是为了有机会在组件之外使用历史记录:
// store action
logout() {
this.user = null;
history.push('/');
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我将逻辑移至商店,并且组件尽可能保持干净。但现在,在 React Router v6 中我不能做同样的事情。我仍然可以useNavigate()在我的组件内部使用它进行导航,但我无法创建一个navigate将其使用到我的商店中的组件。还有其他选择吗?