我正在为我的react应用程序创建一个库,它将处理与会话相关的每个API调用(authenticate,register,refresh token等...),这个库需要自己访问redux存储来调度动作 . 这背后的原因是每当用户的访问令牌到期时,使用setTimeout我需要调用将调用我的API来刷新令牌的动作创建者,并使用新的会话数据更新应用程序redux商店 .
所以每当我第一次调用它时,我都会考虑将调度方法传递给库,但我不确定这是最好的方法 .
或者我也可以创建一个将调度传递给库的 initialize()
方法 .
import { authenticate } from 'libraries/session';
export function login(email, password) {
return (dispatch) => {
dispatch(loginRequest());
return authenticate(email, password, dispatch) // dispatch is passed here, so I can use it later in the library
.then(() => (
dispatch(loginSuccess())
))
.catch((json) => (
dispatch(loginError());
));
};
};
我还没有尝试过这个代码,现在更像是一个头脑风暴 .
你对这个问题的最佳方法有什么建议吗?
谢谢!
1 回答
我的冲动是交换参数: