如何从状态内的对象内部传递信息

时间:2019-04-09 16:40:59

标签: vuex nuxt

我正在使用Nuxtjs,我想获取一个处于我的状态的ID,并使用它对API进行新的调用。

我的carInfo有一个IdAddress,我想使用它来调用API。

我的商店:

    export const state = () => ({
      allCars: [],
      carInfo: [],
      carAddress: []
    });

    export const actions = {
      async fetchAll({ commit }) {
        let cars= await this.$axios.$get(
          "apiaddress"
        );
        commit("setCars", cars);
      },

      async fetchcar({ commit }, id) {
        let car= await this.$axios.$get(
            "apiaddress"
        );
        commit("setcar", car);
      },

      async fetchAddress({ commit }, id) {
        let address = await this.$axios.$get(
          "apiaddress"
        );
        commit("setAddress", address);
      }
    };

1 个答案:

答案 0 :(得分:0)

Actions documentation说:

  

动作处理程序接收一个上下文对象,该对象公开了相同的一组   商店实例上的方法/属性,因此您可以调用context.commit   进行更改,或通过context.state访问状态和获取方法,然后   context.getters

接着说他们经常使用argument destructuring,这就是为什么操作参数通常看起来像这样的原因:{ commit }

在这种情况下,您可以在参数中添加state,然后应该可以从状态访问carInfo值。

例如,将您的fetchAll操作更改为:

async fetchAll({ commit, state }) {
  let cars = await this.$axios.$get(
    apistate.carInfo.IdAddress
  );
  commit("setCars", cars);
},