react redux - 如何重新加载页面而不是 "push"
react redux - how to reload the page instead of "push"
我有一个注销用户的 thunk 操作
在注销 thunk 操作中我有这个:dispatch(push('/login'));
我想使用“刷新”将用户重定向到注销以刷新页面和。 “清洁”州
另外,我想清理 redux store,而不是它不干净
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 会自动重新加载。所以你需要改变一个状态。例如,您使用的 login/logout 标志或授权标志。
在你的代码中,你需要在你的减速器中为 AUTH_LOGOUT 定义案例的地方更改它。
您可以使用 javascript 的 window 对象进行刷新。
e.g., window.location.href = "router_address"
我有一个注销用户的 thunk 操作
在注销 thunk 操作中我有这个:dispatch(push('/login'));
我想使用“刷新”将用户重定向到注销以刷新页面和。 “清洁”州
另外,我想清理 redux store,而不是它不干净
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 会自动重新加载。所以你需要改变一个状态。例如,您使用的 login/logout 标志或授权标志。 在你的代码中,你需要在你的减速器中为 AUTH_LOGOUT 定义案例的地方更改它。
您可以使用 javascript 的 window 对象进行刷新。
e.g., window.location.href = "router_address"