当前位置: 首页 > article >正文

ArkTs-@Builder引用传递问题

问题场景

在page页中,定义了@State status;在实现时发现,将status传入builder,并不能触发改变时的更新。

问题定位

打日志发现,没有发生修改;通过查询资料:

@Builder装饰器:自定义构建函数 ----- 按引用传递参数
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-builder-V5

参数分为按引用传递参数和按值传递两种,按引用传入需要将变量命名为$$。

而status没有办法当作引用传入:

Property ‘status’ cannot initialize using ‘$’ to create a reference to a variable.

解决方案

将page整体作为引用变量传入,通过page去取需要的其他参数。

    @State status: Status = Status.XXX;

    DemoView({
        customUI: () => {
           this.poiList(this); // 此处传入page
        },
        ...
        panelStatus: this.panelStatus, // @Link,实现双向修改
        ...
    })


        @Builder
        poiList(page: DemoPage) {
            Column() {
                List() {
                    ListItem() {
                        XxxHeader({
                            bean: Bean,
                            status: Status // 获取status
                        });
                    }
                    ...
                }
                ...
            }
        }


http://www.kler.cn/a/467591.html

相关文章:

  • 深入解析-正则表达式
  • 弥散张量分析开源软件 DSI Studio 简体中文汉化版可以下载了
  • 指针 const 的组合
  • Gitea代码仓服务搭建
  • OpenGL入门最后一章观察矩阵(照相机)
  • Spring AOP原理详解-Spring官方原版
  • 【MongoDB详解】
  • 旧服务改造及微服务架构演进
  • 如何在不丢失数据的情况下从 IOS 14 回滚到 IOS 13
  • 现代光学基础6
  • ruckus R510升级到Unleashe后不能访问
  • 端到端性能体验稳定性优化常见方案
  • webpack01
  • Elasticsearch 文档批处理 混合处理 批量操作
  • (四)基于STM32通过Event Recoder实现时间测量功能
  • Android中创建ViewModel的几种方法
  • 体验谷歌最新Gemini 2.0 Flash原生多模态音视频对话桌面分享功能
  • 数据结构C语言描述7(图文结合)--哈希、哈希冲突、开放地址法、链地址法等实现
  • 阿里云效自动化部署 Docker镜像
  • 电子电气架构 --- 整车整车网络管理浅析
  • 时序数据库对比
  • Vue项目中生成node_modules文件夹的两种常用方法及npm优势
  • 曲速引擎前端代码生成器 6.6.0 介绍二
  • 《计算机网络A》单选题-复习题库解析-3
  • python——对三大语句的补充、对象的内存分配
  • 友元和运算符重载