我有一个有点奇怪的问题..我无法返回处于 vuex“状态”的对象中的特定属性。为了更好地理解,我将在下面放一个我的商店的片段:state: { activeIdentifier: '', //controlar qual modulo que esta ativo configListActive: { entity: {} }, //controla qual instancias que esta ativa na visao listController: {}, //instancias dos controllers filterParams:{}, //params de filtros feitos }, getters: { configListActive: state => param =>{ console.log("State:", state.configListActive) console.log("Param:", param) console.log("Result:", state.configListActive[param]) return state.configListActive[param]; }, filterParams: state => param => { return state.filterParams[param]; }, listController: state => param => { return state.listController[param]; } },[....]我在 getter“configListActive”中传递一个参数,并且我的对象“configListActive”存在该属性,但是返回是“未定义”,我将把它放在我所做的调试的打印下面。
1 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
您遇到了 Vue 的变更检测警告之一。来自文档:
Vue 无法检测属性添加或删除。由于 Vue 在实例初始化期间执行 getter/setter 转换过程,因此数据对象中必须存在一个属性,以便 Vue 对其进行转换并使其具有反应性...但是,可以使用以下方法将反应性属性添加到嵌套对象:
Vue.set(object, propertyName, value)
方法
在组件内您可以使用:
this.$set(object, propertyName, value)
如果在 Vuex 中遇到警告,您可以将 Vue 导入到 Vuex 模块中:
import Vue from 'vue';
并Vue.set
在突变中使用,例如:
Vue.set(state.object, property, value);
添加回答
举报
0/150
提交
取消