从[__ob__:观察者]中提取数据

时间:2019-07-16 14:55:34

标签: vue.js

我正在尝试从我创建的API中获取数据,该数据按我的意愿列出,但是我无法操纵该数据,因为它返回了[ ob :观察者” 。如何从中提取数据?

Store.js:

    items: state => {
       item.getAll().then(response => {
         state.items = response.data
      })
      return state.items
    },

Component.vue:

        ...mapGetters(["items"]),
   <v-card flat v-for="item in items" :key="item.title">

1 个答案:

答案 0 :(得分:0)

就像@skirtle所说的那样,因为我正在使用异步任务,所以我需要将函数移至动作。

我的最终代码以这种方式结束:

 getters: {
    items: state => state.items,
  ...
  }

  mutations: {
    'LOAD_ITEMS'(state, data) {
      const items = []
      for (let key in data) {
        const item = data[key];
        item.id = key;
        items.push(item);
      }
      state.items = items;
      ...
    }

  actions: {
    loadItems({ commit, state }) {
      ...
      return axios.get("item.json")
        .then(response => {
          commit("LOAD_ITEMS", response.data);
        }).catch(error => console.log(error));

    }
  }

我正在使用Firebase,所以我做了一个循环来存储密钥。
 如果您拥有自己的API,也许可以直接将response.data存储在JS对象中,而无需使用循环。