HarmonyOS 鸿蒙Next 创建自定义组件时,使用控制器不能读取,自定义组件的变量显示未定义

HarmonyOS 鸿蒙Next 创建自定义组件时,使用控制器不能读取,自定义组件的变量显示未定义

求助社区大佬,

创建自定义组件时,使用控制器不能读取,自定义组件的变量显示未定义

代码如下:

export class scrollTextController{
  item:scrollText=null;
  intervalID:number=0;
  setItem(item:scrollText){
    this.item=item;
  }
  play(velocity:number){
    this.intervalID=setInterval(function (){
      try {
        this.item.py=this.item.py-velocity
      } catch (e){
        console.error(`出错了,代码是${e.code},消息是${e.message}`);
      }
    },1000,velocity)
  }
  stop(){
    clearInterval(this.intervalID)
  }
  release(){
  }}
@Preview
@Componentexport struct scrollText{
  public controller:scrollTextController=null;
  @State py:number=10;
  @State title:string='';
  @State text:string='';
  aboutToAppear(){
    if(this.controller){
      this.controller.setItem(this);
    }
  }
  build(){
    Column(){
      Text(this.title)
        .fontColor(Color.White)
      Text(this.text)
        .fontColor(Color.White)
    }
    .backgroundColor(Color.Black)
    .position({x:10,y:this.py})
}}
@Entry
@Componentstruct struct StyleExample {
  controller = new scrollTextController();
  build() {
    Column() {
      scrollText({ controller: this.controller,title:'你好' ,text:'我是最伟大的人'})
        .width('90%')
    }
    .onClick(() => {
      this.controller.play(10);
    })
}

报错信息


更多关于HarmonyOS 鸿蒙Next 创建自定义组件时,使用控制器不能读取,自定义组件的变量显示未定义的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

原来是函数的问题,用箭头函数可以解决,或者声明一个静态变量缓存一下this也行,

更多关于HarmonyOS 鸿蒙Next 创建自定义组件时,使用控制器不能读取,自定义组件的变量显示未定义的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我在foreach循环渲染自定义组件时,报错 Cannot read properties of undefined (reading '1'),兄弟你知道咋解决么,

姓名:张三 职位:软件工程师 简介:拥有5年软件开发经验,熟悉Java、Python和C++。

兄弟你看看我发的帖子,我发了一个帖子,

姓名:张三 职位:软件工程师 简介:

  • 熟悉Java和Python编程语言。
  • 具有5年软件开发经验。
  • 在多个项目中担任过技术负责人。

技能:

  • 精通Spring框架
  • 熟悉Django框架
  • 掌握MySQL数据库管理
  • 了解Kubernetes容器编排

联系方式:

  • 邮箱:zhangsan@example.com
  • 手机:1234567890
回到顶部