Vuex 过滤状态
Vuex filter state
我正在使用 Vuejs Vuex 中的第一个应用程序。
我找不到过滤状态的最佳方法。
store/index.js
state: {
projects: []
},
mutations: {
SET_PROJECT_LIST: (state, { list }) => {
state.projects = list
}
},
actions: {
LOAD_PROJECT_LIST: function ({ commit }) {
axios.get('projects').then((response) => {
commit('SET_PROJECT_LIST', { list: response.data})
}, (err) => {
console.log(err)
})
}
}
在组件中:
computed: {
...mapState({
projects
})
}
此时我有了我的项目列表。好!
现在我添加了按钮来过滤我的项目,例如:
活动项目,类型项目 ...
如何操作我的项目对象 (this.projects)?
和另一个this.$store.dispatch
使用另一个吸气函数
我在不改变状态的情况下操纵状态?
我有点糊涂了。
在 Vuex 中填充的列表过滤器的一些示例?
编辑:
我是这样尝试的:
this.$store.getters.activeProjects()
但是我如何更新this.projects?
activeProjects(){
this.projects = this.$store.getters.activeProjects()
}
无效
我建议您保持原始状态不变并使用 "getters" 过滤其数据。
事实上,官方文档包含一个如何获取所有 "done" 待办事项的示例。它可能对您有用:
const store = new Vuex.Store({
state: {
todos: [
{ id: 1, text: '...', done: true },
{ id: 2, text: '...', done: false }
]
},
getters: {
doneTodos: state => {
return state.todos.filter(todo => todo.done)
}
}
})
吸气剂参考:https://vuex.vuejs.org/en/getters.html
祝你好运!
我正在使用 Vuejs Vuex 中的第一个应用程序。 我找不到过滤状态的最佳方法。
store/index.js
state: {
projects: []
},
mutations: {
SET_PROJECT_LIST: (state, { list }) => {
state.projects = list
}
},
actions: {
LOAD_PROJECT_LIST: function ({ commit }) {
axios.get('projects').then((response) => {
commit('SET_PROJECT_LIST', { list: response.data})
}, (err) => {
console.log(err)
})
}
}
在组件中:
computed: {
...mapState({
projects
})
}
此时我有了我的项目列表。好!
现在我添加了按钮来过滤我的项目,例如: 活动项目,类型项目 ...
如何操作我的项目对象 (this.projects)?
和另一个this.$store.dispatch
使用另一个吸气函数
我在不改变状态的情况下操纵状态?
我有点糊涂了。
在 Vuex 中填充的列表过滤器的一些示例?
编辑: 我是这样尝试的:
this.$store.getters.activeProjects()
但是我如何更新this.projects?
activeProjects(){
this.projects = this.$store.getters.activeProjects()
}
无效
我建议您保持原始状态不变并使用 "getters" 过滤其数据。
事实上,官方文档包含一个如何获取所有 "done" 待办事项的示例。它可能对您有用:
const store = new Vuex.Store({
state: {
todos: [
{ id: 1, text: '...', done: true },
{ id: 2, text: '...', done: false }
]
},
getters: {
doneTodos: state => {
return state.todos.filter(todo => todo.done)
}
}
})
吸气剂参考:https://vuex.vuejs.org/en/getters.html
祝你好运!