【发布时间】:2018-07-22 23:54:53
【问题描述】:
当我把它放在我的 Vue 组件中时......
// using store getter
computed: {
authenticated() {
return this.$store.getters.authenticated
}
}
...它的工作原理。 authenticated 的值是响应式的,当 vuex 存储中的值为 true 时,计算属性返回 true。
这应该可行...(根据文档,这将是正确的方法)
// using store state
computed: {
authenticated() {
return this.$store.state.authenticated
}
}
...但没有。计算的属性始终为false。
它甚至在初始状态下都不起作用,所以我猜它与动作或突变无关。 vuex 存储在 state 和 getters (Firefox Vue DevTools) 中保存正确的值。
我的商店是这样的:
const state = {
authenticated: authenticate.isAuthenticated(),
};
const getters = {
authenticated () {
return state.authenticated
}
};
const mutations = {
isAuthenticated (state, isAuthenticated) {
state.authenticated = isAuthenticated
}
};
因此,它适用于 store getter,但不适用于 store state。 Afaik 商店状态也应该是反应式的。
知道我做错了什么吗?
【问题讨论】:
-
它有什么作用? “不起作用”是含糊的。
-
Getter 接受状态作为参数。你的吸气剂应该是
authenticated(state) {return state.authenticated}。 -
您是否将状态与 getter、actions 和 mutators 一起导出?
-
@RoyJ 你是对的,我更新了问题,希望问题现在更清楚了。
-
@Sletheren 是的,我愿意。
标签: vue.js vue-component vuex