为啥 vuex 在 Quasar App 中返回对象而不是数组?

Posted

技术标签:

【中文标题】为啥 vuex 在 Quasar App 中返回对象而不是数组?【英文标题】:Why vuex return object instead of array in Quasar App?为什么 vuex 在 Quasar App 中返回对象而不是数组? 【发布时间】:2021-02-14 06:13:47 【问题描述】:

我有 Quasar 应用程序 我连接了vuex 我为 vuex 创建了一个单独的文件作为模块,如下所示: 我在 vuex 中创建了一个空数组 如果我在浏览器中打开 Vue 扩展,我会看到 vuex 返回对象,其中存储了一个数组,而不仅仅是一个数组

我怎样才能只存储一个数组而不是对象?

我创建了一个这样的 vuex 文件:

在 store/index.js 文件中我导入了 cars.js 文件:

import Vue from 'vue'
import Vuex from 'vuex'
import cars from "src/store/module-example/cars";

Vue.use(Vuex)

export default function (/*  s-s-rContext  */) 
  const Store = new Vuex.Store(
    modules: 
     cars
    ,

    // enable strict mode (adds overhead!)
    // for dev mode only
    strict: process.env.DEBUGGING
  )

  return Store

Cars.js 文件:

import axios from "axios";

const state = 
  cars: []


const mutations = 
  SET_CARS: (state, cars) => 
    state.cars = cars;
  


const actions = 
  async GET_ALL_CARS_FROM_API(commit) 
    let result = await axios.get('http://localhost:8050/api/cars');
    commit("SET_CARS", result.data)

  


const getters = 
  GET_ALL_CARS: (state) => 
    return state.cars;
  

export default 
  namespaced: true,
  state,
  mutations,
  actions,
  getters

【问题讨论】:

【参考方案1】:

result.data 是一个对象。要将cars 设置为普通数组,只需将其设置为result.data.cars

commit("SET_CARS", result.data.cars)

【讨论】:

以上是关于为啥 vuex 在 Quasar App 中返回对象而不是数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Quasar 框架访问 Vuex 存储模块操作中的 Vue 路由器?

无法从 Vuex [Quasar] 访问商店

Quasar 框架与 VueX

为啥 npm 看不到类星体?

Vuex 突变:使用 ES6 语法解构状态参数(使用 quasar 框架)

vuex 错误 - 不要在突变处理程序之外改变 vuex 存储状态