HarmonyOS 鸿蒙Next Refresh中onOffsetChange,将偏移赋值给@state refreshOffset:number,一切正常,赋值给 class中的 refreshOffset,概率不显示下拉刷新logo
HarmonyOS 鸿蒙Next Refresh中onOffsetChange,将偏移赋值给@state refreshOffset:number,一切正常,赋值给 class中的 refreshOffset,概率不显示下拉刷新logo 情况1:可用
@State refreshOffset: number = 0 // 刷新位移
Refresh({ refreshing: $$this.isRefreshing, builder: refreshLoadingAnimation() }) {
this.content()
}
.onOffsetChange((value: number) => {
this.refreshOffset = value
})
情况2:不出现logo
不断打印Lottie canvas size:25,65
export class BarData {
refreshOffset: number = 0
}
@State barData: BarData = new BarData()
Refresh({ refreshing: $$this.isRefreshing, builder: refreshLoadingAnimation() }) {
this.content()
}
.onOffsetChange((value: number) => {
this.barData.refreshOffset = value
})
更多关于HarmonyOS 鸿蒙Next Refresh中onOffsetChange,将偏移赋值给@state refreshOffset:number,一切正常,赋值给 class中的 refreshOffset,概率不显示下拉刷新logo的实战教程也可以访问 https://www.itying.com/category-93-b0.html
对于嵌套的状态检测,不建议用@state,要使用observed-and-objectlink
更多关于HarmonyOS 鸿蒙Next Refresh中onOffsetChange,将偏移赋值给@state refreshOffset:number,一切正常,赋值给 class中的 refreshOffset,概率不显示下拉刷新logo的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS中,onOffsetChange
回调函数用于监听下拉刷新的偏移量变化。当将偏移量赋值给@state
修饰的refreshOffset
变量时,UI能够正常响应并显示下拉刷新logo。然而,当将偏移量赋值给class中的refreshOffset
变量时,可能出现下拉刷新logo不显示的情况。
这种现象的原因在于@state
修饰的变量会自动触发UI更新,而class中的普通变量则不会。@state
是鸿蒙系统的响应式状态管理机制,当@state
修饰的变量值发生变化时,系统会自动重新渲染依赖该变量的UI组件。而class中的普通变量不具备这种响应式特性,即使其值发生变化,UI也不会自动更新。
因此,若希望UI能够根据偏移量的变化实时更新,建议使用@state
修饰的变量来存储偏移量。若必须使用class中的变量,则需手动触发UI更新,例如通过调用this.requestUpdate()
方法。