if-else crash
通过if-else可以实现组件上下树,如果在animateTo中控制if-else上下树会默认添加透明度动画转场,
if (this.data1) {
// 如果在动画中增加/删除,会给Text增加默认转场
// 对于删除时,增加默认透明度转场后,会延长组件的生命周期,Text组件没有真正删除,而是等转场动画做完后才删除
Text(this.data1.str) // 组件没有销毁,又取this.data1 会crash
} else if (this.data2) {
// 如果在动画中增加/删除,会给Text增加默认转场
Text(this.data2.str)
}
解决方式:动画中上下树,增加transition(TransitionEffect.IDENTITY)属性或者二次判空
developer.huawei.com/consumer/cn…
for-each逻辑
1、检查key值是否相等,不相等重新刷新UI