反应如何重新加载页面而不是"push"



我有一个注销用户的 thunk 操作

在注销操作中,我有这个:dispatch(push('/login'));

我想通过"刷新"将用户重定向到注销,以便刷新页面和。 "清理"状态

另外,我想清理redux存储,而不是它不干净

import { push } from 'connected-react-router';

export function logout() {
return async (dispatch: any, state: State, services: Services) => {
try {
await services.auth.logout();
} catch (e) {
services.logger.error(e);
} finally {
dispatch({ type: AUTH_LOGOUT });
dispatch(push('/login'));
}
};
}

也当单击我拥有的组件中的按钮时

const Logout = () => {
const dispatch = useDispatch();
React.useEffect(() => {
dispatch(logout());
}, [dispatch]);
return null;
};

还原剂

case AUTH_LOGOUT: {
draft.authenticated = false;
draft.currentUser = {} ;
return draft;
}

然后你可以简单地做window.location.href = '/login';

当你改变一个状态时,React 会自动重新加载。所以你需要改变一个状态。例如,您使用的登录/注销标志或授权标志。 从您的代码中,您需要在化简器中定义AUTH_LOGOUT案例的位置更改它。

您可以使用javascript的窗口对象进行刷新。e.g., window.location.href = "router_address"

相关内容

  • 没有找到相关文章

最新更新