【问题标题】:How to pass info from inside of object inside a state如何从状态内的对象内部传递信息
【发布时间】:2019-04-09 16:40:58
【问题描述】:

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

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

我的商店:

    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);
      }
    };

【问题讨论】:

    标签: vuex nuxt.js


    【解决方案1】:

    Actions documentation 说:

    动作处理程序接收一个上下文对象,该对象公开相同的一组 存储实例上的方法/属性,因此您可以调用context.commit 来 提交突变,或通过context.state 访问状态和getter 和 context.getters.

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

    在您的情况下,您可以将 state 添加到参数中,然后您应该能够从状态访问您的 carInfo 值。

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

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

    【讨论】:

    • 我需要把所有的汽车推到阵列中。在我坐了一辆车之后,我想在这个汽车对象内部获取一个 ID 地址并调用我的 api 来获取关于这个地址的信息。
    • @ZeusAC 我不明白你的问题。这是与您上面的问题不同的问题吗?
    猜你喜欢
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    相关资源
    最近更新 更多