项目场景:
项目场景:编辑商品时,需要将编辑商品和添加商品的组件复用。
问题描述
点击商品列表进行编辑时,给子组件传值rouData,子组件通过watch去监听props中的rowData,并给表单像goodForm赋值,但点击取消时,需要清空表单数据,再次点击同一条数据,子组件数据回显失败。
原因分析:
父组件在点击时,给子组件传入的值中是一个对象,而对象是以虚拟地址在内存中存储的,当内存中的地址一样时,子组件中的watch监听不到rowData的变化,所以不会触发。
解决方案:
父组件再给子组件传值时,可以采用ES6的展开运算服,这样每次传给子组件的内容都会是一个新的地址,内存地址发生了变化,watch就会触发。
this.rowData = {...row}