首页 > 解决方案 > 使用 Route 注销时渲染不同组件时无法更新组件

问题描述

我有一个注销功能,可以将注销发送到商店并设置 isAuth。这是我的应用程序:

const App = () => {
    const isAuth = useSelector(getIsAuth);
    const dispatch = useDispatch();

    const logout = () => {
        localStorage.removeItem('Authorization');
        localStorage.removeItem('user');
        dispatch(onLogout());
    }

    return (
        <>
            {isAuth
                ? <>
                    <Route path='/logout' render={logout}/>
                </> 
                : <Switch>
                </Switch>
            } 
        </>
    )
}

但是在 /logout 我得到:

Warning: Cannot update a component (`App`) while rendering a different component (`Router.Consumer`). To locate the bad setState() call inside `Router.Consumer`

标签: reactjsredux

解决方案


推荐阅读