Vuex 是 Vue.js 应用程序的状态管理模式和库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 中的 getters 类似于 Vue 组件中的计算属性,它们用于从 store 的 state 中派生出一些状态。
在 Vuex 中,getters 是用来获取 state 中的数据,并且可以做一些逻辑处理后返回结果。如果你在使用 forEach
方法时只返回了单个值,可能是因为你没有正确地收集所有的返回值。
如果你想要从一个数组中获取多个值,你应该使用 map
方法而不是 forEach
。forEach
方法本身并不返回值,它只是对数组的每个元素执行一次提供的函数。而 map
方法会创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后的返回值。
假设我们有一个 state,其中包含一个用户列表,我们想要通过一个 getter 获取所有用户的名字。
// store.js
const store = new Vuex.Store({
state: {
users: [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
]
},
getters: {
userNames: (state) => {
// 使用 map 方法来获取所有用户的名字
return state.users.map(user => user.name);
}
}
});
在组件中使用这个 getter:
computed: {
...mapGetters([
'userNames'
])
}
这样,userNames
将会是一个包含所有用户名字的数组。
通过上述方法,你可以确保你的 Vuex getters 正确地返回多个值,而不是单个值。
没有搜到相关的文章