在组件传参的时候使用Object.assign,子组件使用watch监听传递过来的参数,参数变化时执行相应事件,并设置了immediate:true,但是现在在页面初次加载的时候事件会执行两次,不知道是什么导致的。//父组件data(){return{params:{a:2b:1}}}//子组件watch:{'params':{handler(){this.getData()//这里执行了两次},deep:true,immediate:true}}解决办法是设置immediate:false但是不知道为什么会导致第一次执行两次
2 回答
慕森王
TA贡献1777条经验 获得超3个赞
immediate:true立即执行了一次watchhandler随后又触发了一次render,render里会执行Object.assign(),而Object.assign()生成的是一个新对象(地址不一样),watch检测到了改变,所以watchhandler又执行了一次以上就触发了两次watchhandler。
添加回答
举报
0/150
提交
取消