在vue项目中,有以下代码:
import * as type from "store/modules/warePublish/type"
export default {
data() {
return {
breadcrumbs: [
{title: "Location"},
{title: "Product Management"},
{title: "Product Creation"}
],
activeStep : 1,
isOpen: false,
}
},
methods: {
saveWarePublishVO() {
this.setIsValidate(!this.isValidate)
let isBasicInfoVoValid = this.basicInfoVO.validateFlag
let isOrdinaryAttrInfoVOValid = this.ordinryAttrbuteInfoVO.validateFlag
this.$store.dispatch(type.SAVE_WARE_INFO)
},
...mapMutations({
setIsValidate: 'SET_VALIDATE',
setAlertConfig: 'SET_ALERT_CONFIG'
})
},
computed: {
...mapGetters([
'isValidate'
'basicInfoVO',
'ordinryAttrbuteInfoVO'
])
}
}
}
点击save的时候,取反vuex中isValidate(默认为false),然后在每一个组件监听watch isValidate,但是在ordiary-info组件中监听不到isValiate的变化,但是如果点击checkbox,再点击save按钮,就可以监听到isValidate的变化,这是什么原因呢?
{{ attribute.propertyName }}:
:id="getId()"
:name="getId(false)"
:class="inputType"
:value="item.propertyValueId"
v-model="checkedIdList"
v-validate="{
required: attribute.required
}"/>
{{ item.valueData }}
:id="getId()"
:name="getId(false)"
:class="inputType"
:value="item.propertyValueId"
v-model="checkedIdList"
v-validate="{
required: attribute.required
}"/>
{{ item.valueData }}
required.
computed: {
...mapGetters([
'isValidate',
'ordinryAttrbuteInfoVO'
])
}
watch: {
isValidate(old, newVal) {
console.log(old, newVal)
})
}
}