在做项目的时候遇到这样一个问题,要在子组件中改变父组件传递过来的值,遇到问题如下:
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: "meritMaster"
翻译:避免直接更改道具,因为每当父组件重新渲染时,该值都会被覆盖。相反,使用基于道具值的数据或计算属性。道具正在变异:“meritMaster”
解决办法:在子组件的data中设置一个变量来接收父组件传递过来的参数,总组件改变data中的变量即可。代码如下
<input type="text" v-model="randNum" @input="changeMeritMaster" />
data() {
return {
randNum: this.meritMaster,//随机数
}
},
props:{
meritMaster:{
type:Number,
default:0
},
},
methods: {
//改变变量的值
changeMeritMaster(e){
this.randNum = e.detail.value
//console.log(this.randNum)
},
}