我正在尝试从异步函数中获取 user_id。这是我的操作:
export const loginCC = (email, password) => {
return async (dispatch) => {
async function CC_Session() {
return ConnectyCube.createSession({
email: email,
password: password,
});
}
try {
const response = await CC_Session();
const uid = response.user_id; //THIS GIVES THE USER ID WITHOUT A PROBLEM
const token = response.token; // THIS GIVES THE DATA TOO
dispatch({
type: LOGIN_TO_CONNECTYCUBE,
ccid: uid,
ccToken: token,
});
} catch (error) {
console.log(error);
}
};
};
这是我的减速器:
const initialState = {
token: null,
userId: null,
ccid: null,
ccToken: null,
isConnected: null,
};
export default (state = initialState, action) => {
switch (action.type) {
case LOGIN_TO_CONNECTYCUBE:
return {
ccid: action.ccid,
ccToken: action.ccToken,
};
我可以从 async 函数中获取数据并发送它。
但是当我想用 getState().auth.ccid
访问它时,它返回“undefined”。
我怎么解决这个问题?
谢谢!
答案 0 :(得分:1)
我解决了这个问题。执行此操作后,我立即获得了 Firebase 登录名。看起来 Firebase 登录操作重置了状态。我创建了另一个名为 user 的减速器。并将上述操作分派给该用户减速器。我不知道为什么 Firebase 操作会重置状态,但在划分减速器后它起作用了。