父组件
<popup :show="showpopup" @closepop="closepop"></popup>
子组件
<template>
<div :class="show?'container show':'hide'" @click="close">
</div>
</template>
//这是一个弹窗
<script>
export default {
name: "popup",
props:{
show:true,
},
methods:{
close(){
this.show = false;
this.$emit('closepop')
}
}
}
</script>
以上代码实现,当我点击弹窗的时候出现了以下报错信息
大概意思是:通过props父组件传递给子组件的值,不能被修改,show不能被子组件修改,我的理解是父组件传递的变量,就要父组件来改变
===============
以下是修改后的代码:
父组件
<popup :show="showpopup" @closepop="closepop"></popup>
子组件
<template>
<div :class="show?'container show':'hide'" @click="close">
</div>
</template>
//这是一个弹窗
<script>
export default {
name: "popup",
props:{
show:true,
},
methods:{
close(){
//this.show = false; //这行去掉 不能直接改变props中参数的值
this.$emit('closepop'); //通知父组件改变。
}
}
}
</script>
通知父组件改变show这个变量