我有一个注销用户的 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"