computed属性监听对象时候,若对象的引用地址未改变,那么computed将不会检测到。(比如object中的某个key对应的value发生了变化,computed检测不出来)

原写法

export default {
    namespaced: true,
    state: {
        shareInformation:{
             other: {}//获取时为Null
             ...
        }
    },
    mutations: {
        addInformation(state,info){
            let data = Object.assign(state.shareInformation,info);
            //此时state.shareInformation的值改变了,但是引用地址没变
            state.shareInformation = data;
        },
    }
}

正确写法

export default {
    namespaced: true,
    state: {
        shareInformation:{
            other: {}
            ...
        }
    },
    mutations: {
        addInformation(state,info){
            //创建一个新的对象,将state.shareInformation,Info,对象复制到新对象中
            let data = Object.assign({},state.shareInformation,info);
            //将state.shareInformation指向新对象的引用地址
            state.shareInformation = data;
        },
    }
}
Logo

前往低代码交流专区

更多推荐