$$语法:内置组件双向同步

2024-01-25 12:08 更新

$$运算符为系统内置组件提供TS变量的引用,使得TS变量和系统内置组件的内部状态保持同步。

内部状态具体指什么取决于组件。例如,Refresh组件的refreshing参数。

使用规则

  • 当前$$支持基础类型变量,以及@State、@Link和@Prop装饰的变量。
  • 当前$$仅支持Refresh组件的refreshing参数。
  • $$绑定的变量变化时,会触发UI的同步刷新。

使用示例

Refresh组件的refreshing参数为例:

当使用了$$符号绑定isRefreshing状态变量时,页面进行下拉操作,isRefreshing会变成true。

同时,Text中的isRefreshing状态也会同步改变为true,如果不使用$$符号绑定,则不会同步改变。

  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct RefreshExample {
  5. @State isRefreshing: boolean = false
  6. @State counter: number = 0
  7. build() {
  8. Column() {
  9. Text('Pull Down and isRefreshing: ' + this.isRefreshing)
  10. .fontSize(30)
  11. .margin(10)
  12. Refresh({ refreshing: $$this.isRefreshing, offset: 120, friction: 100 }) {
  13. Text('Pull Down and refresh: ' + this.counter)
  14. .fontSize(30)
  15. .margin(10)
  16. }
  17. .onStateChange((refreshStatus: RefreshStatus) => {
  18. console.info('Refresh onStatueChange state is ' + refreshStatus)
  19. })
  20. }
  21. }
  22. }

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号