首页 > 解决方案 > 在 useEffect 完成之前组件命中重定向

问题描述

我有一个useEffect在端点上运行提取的设置,并且根据它取回的数据,我想显示我的组件或重定向到其他地方。

我发现的问题是代码在我的 useEffect 完成之前运行,所以我总是被重定向......

我还能做些什么来达到预期的效果吗?

伪代码

const myComp = () => {
    useEffect(() => {
        /* 
         * I will do my API call here which will set my 
         * variables 'isLoading' and 'myLoadedConditional' via redux
        */
    }, []);

    if (isLoading) return <h1>Still loading</h1>

    return myLoadedConditional
        ? <MyComponent />
        : <Redirect to={`/some-link`} />
}

标签: javascripthtmlreactjs

解决方案


useEffect 在渲染后运行,因此如果 myLoadedConditional 为 false,则使用当前代码,它将始终使用 Redirect 组件


推荐阅读