同时使用VUEX构建VUE项目。我不是从在todos.js VUEX模块中定义的状态获取属性,而是从VUEX存储中定义的正常属性。我使用了模块并分离了文件。
<div> isLoading: {{ isLoading }} </div> // isLoading:
<div> isValid: {{ isValid }} </div> // isValid: true计算
computed: {
isLoading() {
const loading = this.$store.state.isLoading;
console.log(loading);
return loading;
},
isValid() {
const valid = this.$store.state.isValid;
console.log(valid);
return valid;
},},
VUEX商店
import Vue from 'vue';
import Vuex from 'vuex';
import todos from './modules/todos';
Vue.use(Vuex);
export default new Vuex.Store({
state: {
isValid: true,
},
getters: {
},
mutations: {
},
actions: {
},
modules: {
todos,
},
});todos.js
const state = {
isLoading: true,
};
export default {
state,
};输出
isLoading:
isValid: trueisLoading不显示为真,但isValid显示为真。我不明白他们的行为,我看过医生的书,什么也找不到。
发布于 2020-05-21 05:16:43
尝试添加模块名
computed: {
isLoading() {
const loading = this.$store.state.todos.isLoading;
console.log(loading);
return loading;
}
},发布于 2020-05-21 06:03:27
您可以使用vuex助手函数,例如mapState。
import { mapState } from "vuex";
...
computed: {
...mapState("/todos", ["isLoading"])
}或
computed: {
...mapState({
isLoading: state => state.todos.isLoading
})
}https://stackoverflow.com/questions/61927601
复制相似问题