**
问题描述
**
项目中遇到传值的部分,一开始用的兄弟组件传值但是因为是两个组件当某一个数据类型不一样时要切换不同的模板所以兄弟组件一开始有获取不到值的情况。
改为了父子组件传值,但是又遇到了一种情况,当父组件的值变化时子组件的值没有任何变化数据还是第一次的数据。
解决办法
解决办法就是用watch去监听你传到子页面的数据,一开始在created里面先赋值一下,保证一开始进入这个页面时有数据
created() {
console.log('拿到父亲的值了');
console.log(this.SXparentmsg);
this.intData = this.SXparentmsg
this.sxForm.name = this.intData.name
this.sxForm.flag = this.intData.method
this.sxForm.talk = this.intData.description
},
之后用watch监听这个数据,把新值=你子页面要接收的数据(也就是之前父页面给你传的数据)
watch:{
SXparentmsg (newV, oldV) {
console.log(newV);
this.intData = newV
this.sxForm.name = this.intData.name
this.sxForm.flag = this.intData.method
this.sxForm.talk = this.intData.description
}
},
这就完美的解决了不更新的问题,我这个父页面传的数据是个数组,子页面用的就是普通的watch监听可以监测到