Я делаю вызов ajax в моей модели.Ответ хранится в моем состоянии Vuex.Мой шаблон использует состояние с использованием геттеров.Но получатель возвращает «наблюдателя».
Таким образом, мой шаблон не показывает ничего в таблице данных.
Модель :менение.js
export const getUsageFiles = async () => {
const path = '/usage/files/';
return (await rest.request(path)).body;
};
Магазин:UsageFiles.js
import {
prop,
} from 'ramda';
state: {
usageFiles: [],
},
getters: {
usageFiles: prop('usageFiles'),
},
mutations: {
updateUsageFiles(state, { file }) {
state.usageFiles = file;
},
},
actions: {
async getUsageFiles() {
let usageFile = [];
usageFile = await usage.getUsageFiles();
commit({
file: usageFile,
type: 'updateUsageFiles',
});
}
},
Vue: Usage.vue
data() {
return {
headers: ['A', 'B'],
};
},
methods: {
...mapActions('usageFiles', [
'getUsageFiles',
]),
}
computed: {
...mapGetters('usageFiles', [
'usageFiles',
]),
},
async created() {
await this.getUsageFiles();
console.log('Getter : ', this.usageFiles); // Here it is the getter returning "observer"
}
HTML-шаблон:
v-data-table.data-table__body(
v-if="usageFiles.length",
:headers="headers",
:items="usageFiles",
:hide-headers="!usageFiles.length",
:pagination.sync="pagination",
:rows-per-page-items="paginationOptions",
:loading="tableIsLoading",
)
Здесь «useFiles» не отображаются, потому что это«Наблюдатель» проверил в console.log (я не написал остальную часть кода шаблона, потому что он становится слишком длинным).