0

我正在尝试创建 vuex 商店系统,但遇到了问题。在 Action.js 中,我可以 console.log 并获取令牌,但在 mutation.js 中我得到未定义。

动作.js

 async [LOGIN_ACTION](context, payload) {
    let response = "";
    try {
      response = await axios.post("http://127.0.0.1:8000/pages/login/", {
        email: payload.email,
        username: payload.username,
        password: payload.password,
        returnSecureToken: true,
      });
    } catch (err) {
      let errorMessage = SignupValidations.getErrorMessageFromCode(
        err.response.data[0]
      );
      throw errorMessage;
    }
    if (response.status === 200) {
      context.commit(SET_USER_TOKEN_DATA_MUTATION, {
        email: response.data.email,
        username: response.data.username,
        token: response.data.idToken,
        expiresIn: response.data.expiresIn,
        userId: response.data.localId,
      });

      console.log(response.data.token); //Here I get my token without any problem
    }
  },

突变.js

export default {
  [SET_USER_TOKEN_DATA_MUTATION](state, payload) {
    state.email = payload.email;
    state.token = payload.token;
    state.expiresIn = payload.expiresIn;
    state.refreshToken = payload.refreshToken;
    state.userId = payload.userId;
    state.autoLogout = false;
    console.log(state.token); //I get undefined here
    
  },
};

getters.js

export default {
  [GET_USER_TOKEN_GETTER]: (state) => {
    console.log(state.token); //undefined
    return state.token;
  },
};

另外,我在我的组件中使用了 mapGetters。

4

0 回答 0