所以我想用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
,但是打字稿只能看到正在返回的函数。
那么我如何在返回值await
上键入函数?
或者有更好的方法吗?
答案 0 :(得分:0)
您尝试执行的操作似乎有点反模式。 该功能本来就是一劳永逸的,所以您不必挂起UI。 登录功能应将状态从
转到现在的减速器loggedIn: false
到
loggedIn: true
如果您需要一些具有响应能力的魔术,如果登录失败,则抛出异常,那么我会推荐类似的东西
this.props.login().catch(err => console.log(err)).then(() => doSomething));
但是,我强烈建议您仅调度并侦听ComponentDidUpdate生命周期挂钩以进行重定向或可能需要执行的任何操作。
答案 1 :(得分:0)
您需要通过分派适当的操作来调用注销功能