如何在没有无限循环的情况下在 React 的 useEffect 钩子中使用 window.open()?

时间:2021-05-31 12:35:50

标签: reactjs typescript redux react-redux react-hooks

我是 React、Redux 和 Typescript 的新手。我正在尝试实现 SSO 和 OAuth,如 here 所述。我可以用登录按钮来完成,所以点击后,它会重定向到我的应用程序(如果参数正确)。但是,我希望在打开页面时自动启动该过程。 (没有任何额外的按钮)。我假设我可以使用 useEffect。这是我的代码,但它创建了一个无限循环。 在这里删除无限循环的正确方法是什么?

networking.k8s.io/v1beta

1 个答案:

答案 0 :(得分:0)

诀窍是 useEffect 需要第二个参数
请尝试以下示例

useEffect(() => {
    window.open(getAuthorizeHref(), "_self");
}, []);

第二个参数是一个变量数组,组件将检查这些变量以确保在重新渲染之前已更改。你可以在这里放任何你想要的道具和状态来检查。 enter image description here