为什么我的 React-Redux 操作返回“未定义”?

时间:2021-01-23 20:06:14

标签: react-native react-redux redux-thunk

我正在尝试从异步函数中获取 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”。 我怎么解决这个问题? 谢谢!

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。执行此操作后,我立即获得了 Firebase 登录名。看起来 Firebase 登录操作重置了状态。我创建了另一个名为 user 的减速器。并将上述操作分派给该用户减速器。我不知道为什么 Firebase 操作会重置状态,但在划分减速器后它起作用了。