HarmonyOS 鸿蒙Next onclick失效且数组更换图片有问题,求助大佬指点一下,研究一天了,实在是没办法了

HarmonyOS 鸿蒙Next onclick失效且数组更换图片有问题,求助大佬指点一下,研究一天了,实在是没办法了

我想做一个自动出题机,通过点击更换图片,从而让小孩学习一些基础启蒙知识,但是到这一步就说啥也不动了,没导入数组的时候ini init这两个变量还可以动,现在啥都不动了,编码不报错,我现在已经怀疑是不是我的电脑或者平板有问题了,求助,实在是搞不明白了。两个点击都不起作用。预览器和真机都不起作用,要是大佬帮我改一下就更好了。

@Entry
@Component
struct Index {
    @State
      inn: string[] = [`app.media.p10010101`,`app.media.p10010102`,`app.media.p10010103`,`app.media.p10010104`,`app.media.p10010105`,]
       ini: number = 0
      init: number = 1
build() {
    Column {
      Column {
        Flex({ wrap: FlexWrap.Wrap }) { // 子组件多行布局
          Flex() {
            Flex(){Text('总题数54   已回答题数'+this.ini+'   '+this.init+'分数')}
            .width('33.3%').height('100%').backgroundColor('#228B22')
                  Flex () {Button()
                    .onClick(() => {
                      this.ini++
                    })
                  }
                    .width('33.3%').height('100%').backgroundColor('#B8860B')
                  Flex()
                    .width('33.3%').height('100%').backgroundColor('#8B0000')}
          .width('100%').height('38%').backgroundColor(0xF5DEB3)
          Flex(){
            Image($r(this.inn[this.ini]))
            .objectFit(ImageFit.Contain)
            .backgroundImagePosition(Alignment.Start)
            .backgroundImageSize(ImageSize.Auto)}
          .width('100%').height('62%').backgroundColor(Color.White)
        }
        .width('100%').height('67%')
        .backgroundColor(0xAFEEEE)

        Flex({ wrap: FlexWrap.WrapReverse , direction:FlexDirection.Row })
        {
          Flex(){
            Button( { type: ButtonType.Circle, stateEffect: true })
                   .backgroundColor(Color.White)
                   .width('50%')
                   .height('50%')
                   .offset({ x: '25%', y: '25%' })
                   .backgroundImagePosition(Alignment.Center)
                   .onClick(() => {this.ini++})
          }

          .width('50%')
          .height('100%')
          .backgroundColor('#36454F')
          Flex(){Button({ type: ButtonType.Circle, stateEffect: true })

            .backgroundColor(Color.Black)
                   .backgroundImageSize(ImageSize.FILL)
                   .backgroundImagePosition(Alignment.Center)
            .offset({ x: '25%', y: '25%' })
            .width('50%')
            .height('50%')}
          .width('50%').height('100%').backgroundColor('#36454F')
        }
        .width('100%')
        .height('38%')
        .backgroundColor(0xAFEEEE)
      }.width('100%')
    }.width('100%').height('100%')
  }
}

更多关于HarmonyOS 鸿蒙Next onclick失效且数组更换图片有问题,求助大佬指点一下,研究一天了,实在是没办法了的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

@State ini: number = 0
@State init: number = 1

这样改下就好了,Arkts UI刷新,是通过状态驱动UI刷新,需要通过@State注解或则@Prop等注解修饰变量,改变变量值驱动界面刷新,你上面两个值没有赋初始值,所以点击没有反应。

更多关于HarmonyOS 鸿蒙Next onclick失效且数组更换图片有问题,求助大佬指点一下,研究一天了,实在是没办法了的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


要的就是大神指点,

找HarmonyOS工作还需要会Flutter技术的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

真是热心的老哥,我自己看了一天文档也没找出来问题,老哥一句话解决了,超级感谢,超级感谢。

针对你提到的HarmonyOS(鸿蒙)系统中Next按钮的onclick事件失效以及数组更换图片的问题,这里给出可能的解决方案:

  1. Next onclick失效

    • 确认onclick事件是否已正确绑定到Next按钮。在鸿蒙的XML布局文件中,检查按钮的ID是否与JavaScript或TS代码中的ID一致。
    • 查看是否有其他事件或代码阻止了onclick事件的触发,如返回键拦截、其他事件处理函数等。
    • 确认按钮是否处于可点击状态,没有被其他视图遮挡。
  2. 数组更换图片有问题

    • 检查图片数组是否已正确加载,图片路径是否正确无误。
    • 确认更换图片的逻辑是否正确,如在数组索引超出范围时是否进行了处理。
    • 查看是否有内存泄漏或资源未释放的问题,导致图片加载失败。

如果上述检查均无误,但问题依旧存在,可能是鸿蒙系统特定的bug或兼容性问题。此时,可以尝试更新鸿蒙系统版本或查阅鸿蒙开发者社区是否有类似问题的解决方案。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部