在实际项目中,需要对折叠面板默认全部展开,在动态设置了value值后,发现不生效
u-collapse ref="collapse" :border="false" class="d-collapse" :value="value"
上述动态给与value值一个空数组,并在查询数据后动态push值(值为u-collapse-item name的值),但是发现并不起效果,跟踪代码发现在源代码u-collapse.vue有两个watch监听,导致needInit监听被覆盖了
这导致init永远不会执行
解决方案:
- 直接修改源代码,两处合为一处,但是框架有更新的时候可能还会被重置
- 手动调用init方法,在数据查询赋值完毕后,使用以下代码可以手动更新,问题解决
this.$nextTick(function () {
/*现在数据已经渲染完毕*/
// nextTick延迟回调,否则第一次不更新
this.$refs.collapse.init()
})