相关疑难解决方法(0)

如何检测浏览器后退按钮事件 - 跨浏览器

你如何明确地检测用户是否按下了浏览器中的后退按钮?

如何使用#URL系统在单页Web应用程序中强制使用页内后退按钮?

为什么地球上没有浏览器按钮触发他们自己的事件!?

javascript cross-browser back single-page-application

188
推荐指数
11
解决办法
42万
查看次数

React Router v6 在组件之外导航

在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将其使用到我的商店中的组件。还有其他选择吗?

javascript reactjs react-router react-router-dom

54
推荐指数
3
解决办法
6万
查看次数