所以我试着用Redux Thunk输入我的Redux操作
下面是一个操作
export function logout() {
return async(dispatch) => {
try {
const value = localStorage.removeItem("token");
dispatch(cons.updateLoginStatus(false));
return true;
} catch (err) {
console.error(err);
}
}
}这是连接文件
const mapStateToProps = (store: IAppState) => {
return {
isLoggedIn: store.employee.isLoggedIn
}
}
const mapDispatchToProps = {
logout
}
export default connect(mapStateToProps, mapDispatchToProps)(Auth);当我调用await this.props.logout();时,我想访问返回的true,但typescript只能看到返回的函数。
那么,如何将函数键入await以获取返回值呢?
或者有没有更好的方法来做到这一点?
发布于 2018-11-14 15:26:37
您尝试的内容似乎有点反模式。该函数的目的是触发并忘记,这样您就不会挂起UI。登录函数应将该状态现在已从
loggedIn: false至
loggedIn: true如果你需要一些神奇的响应,如果登录失败抛出一个异常,那么我建议你这样做
this.props.login().catch(err => console.log(err)).then(() => doSomething));但是,我强烈建议您只发送和侦听ComponentDidUpdate生命周期钩子来重定向或任何您可能需要做的事情。
发布于 2018-11-14 15:27:10
您需要通过分派适当的操作来调用注销函数
https://stackoverflow.com/questions/53294381
复制相似问题