iview modal组件拆出去后,点击右上角的×关闭,会报错 Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "faultModalStatus"
父组件
<fault-modal
:faultModalStatus="faultModalStatus"
@faultConfirmEvent="faultConfirmEvent"
@faultCancelEvent="faultCancelEvent"
@getFaultModalStatusChange="getFaultModalStatusChange"
>
</fault-modal>
methods:{
//监听弹窗的状态
getFaultModalStatusChange(e){
console.log(e)
if(e === false){
this.faultModalStatus = false;
};
},
//故障呼叫的点击事件
faultClickEvent(){
this.faultModalStatus = true;
},
//弹出层的事件
faultConfirmEvent(){
this.faultModalStatus = false;
},
faultCancelEvent(){
this.faultModalStatus = false;
}
},
子组件
<template>
<div>
<Row>
<Col>
<Modal
v-model="faultModalStatus"
title="故障呼叫详情"
@on-visible-change="getFaultModalStatusChange"
>
<div slot="footer">
<div>
<Button :loading="buttonLoading" type="success" @click="faultConfirmEvent">确认</Button>
<Button class="cancelButton" @click="faultCancelEvent">取消</Button>
</div>
</div>
</Modal>
</Col>
</Row>
</div>
</template>
<script>
export default {
props:{
buttonLoading:{
type:Boolean,
default:false
},
faultModalStatus:{
type:Boolean,
default:false
},
modalEeqName:{
type:String,
},
modalWorkshop:{
type:String,
},
modalProcess:{
type:String,
},
modalRepairPerson:{
type:String,
},
modalFaultClassify:{
type:String,
},
modalDescribe:{
type:String,
},
modalRepairPersonList:{
type:Array
},
modalFaultClassifyList:{
type:Array
}
},
data(){
return {
// faultModalStatus:false
currentIndex:this.faultModalStatus
}
},
methods:{
//弹出层的事件
faultConfirmEvent(){
this.$emit('faultConfirmEvent');
},
faultCancelEvent(){
this.$emit('faultConfirmEvent');
},
getFaultModalStatusChange(e){
this.$emit('getFaultModalStatusChange',e);
}
}
}
</script>
<style>
</style>
不知道楼主解决问题了没,改下子组件
Modal
组件的用法即可。如有帮助,麻烦点击下采纳,谢谢~