import { defineStore } from 'pinia'; import { getC } from '../apis/usedcar'; export const useCounterStore = defineStore('counter', { state: () => { return { count: 66, convenientBrands: [], convenientModels: [], convenientPrices: [] }; }, // 计算属性 对仓库中的数据进行加工处理,生成新的数据, getters: {}, // 用来修改仓库中的数据,只能执行同步方法 mutations: { setData(state, payload) { for (const key in payload) { state[key] = payload[key] } } }, // 异步 actions: { async getCon(payload) { const { data } = await getC(); console.log('666', data.data); // convenientBrands:[{…}, {…}, {…}, {…}, {…}] // convenientModels: [{…}, {…}, {…}, {…}, {…}] // convenientPrices: [{…}, {…}, {…}, {…}] } }, }); 在以上代码中 我拿到了数据 并打印了出来 data.data是下面的注释 我怎么通过中间的mutations 里的 setData 将数据整理好 给添加到 state里 所对应的:convenientBrands: [], convenientModels: [], convenientPrices: []
时间: 2023-11-23 10:31:13 浏览: 146
14.(vue3.x+vite)组件间通信方式之pinia.rar
你可以在 `actions` 中调用 `setData` 方法,将获取到的数据存储到对应的 state 属性中。可以这样修改代码:
```
import { defineStore } from 'pinia';
import { getC } from '../apis/usedcar';
export const useCounterStore = defineStore('counter', {
state: () => {
return {
count: 66,
convenientBrands: [],
convenientModels: [],
convenientPrices: []
};
},
// 计算属性 对仓库中的数据进行加工处理,生成新的数据,
getters: {},
// 用来修改仓库中的数据,只能执行同步方法
mutations: {
setData(state, payload) {
for (const key in payload) {
state[key] = payload[key]
}
}
},
// 异步
actions: {
async getCon() {
const { data } = await getC();
const { convenientBrands, convenientModels, convenientPrices } = data.data;
// 将获取到的数据存储到对应的 state 属性中
this.setData({
convenientBrands,
convenientModels,
convenientPrices
});
}
},
});
```
这样在调用 `getCon()` 方法时,就会异步获取数据并将其存储到对应的 state 属性中,方便后续使用。
阅读全文