useNavigate 外部功能组件 - react-router v6

Posted

技术标签:

【中文标题】useNavigate 外部功能组件 - react-router v6【英文标题】:useNavigate outside functional component - react-router v6 【发布时间】:2021-07-13 04:05:50 【问题描述】:

有没有办法在 react-router v6 的功能组件之外使用 useNavigate() 挂钩?我正在尝试在 saga 函数中使用 navigate(url) 。我知道在 v4 中我们可以这样做:

const history = createBrowserHistory();
function* sagaFunc()
 history.push(url)

我们可以通过 useNavigate() 钩子在 react-router v6 中做类似的外部组件吗?

【问题讨论】:

此行为有效,但由于某种原因,它只是更改了路由并且不加载组件。我一直在寻找相同的替代品。 【参考方案1】:

你可以利用在 react 组件之外使用一些路由功能。

window.history.pushState(, "Dashboard", "/dashboard");
window.location.reload();

我自己没有找到任何合适的替代 createBrowserHistory() 存在于 v4v5 中。

参考来自here

【讨论】:

以上是关于useNavigate 外部功能组件 - react-router v6的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的错误:useNavigate() 只能在赛普拉斯单元测试用例中的 <Router> 组件的上下文中使用

Reac组件化以及组件通信

Reac组件化以及组件通信

找不到导航对象。您的组件是不是在导航器的屏幕内?

反应开玩笑模拟 useNavigate()

如何使用 useNavigation() 在与 typescript 的本机反应中导航到屏幕