关于@Link的小问题 HarmonyOS 鸿蒙Next

发布于 1周前 作者 h691938207 来自 鸿蒙OS

关于@Link的小问题 HarmonyOS 鸿蒙Next

请各位重点关注

	onClick(()=>"{
		this.IsShow=!this.IsShow
	}")

@Component
struct Index {
	@State IsShow:boolean=false

	build() {
		Column(){
			Toggle({type:ToggleType.Switch,isOn:this.IsShow})
			SimpleComponent({IsShow:this.IsShow})
		}
		.width('100%')
		.height('100%')
	}
}

@Component
export struct SimpleComponent {
	[@Link](/user/Link) IsShow:boolean
	build() {
		Row () {
			Column () {
				Text('Hello World')
					.onClick(()->{
						this.IsShow=!this.IsShow
					})
			}
			.width('100%')
		}
		.height('100%')
	}
}

问题是如果我是直接.onClick(()->{ this.IsShow=false })就不好使了

大家直接代码放上编译器试试就行,就改了这一行代码,只要改成赋值false就不好使,取反就可以,真奇怪!


更多关于关于@Link的小问题 HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

只有isShow值发生变化才会监听,你的isShow默认值 是false,然后点击的时候也是false,所以监听没生效。

可以改成 if else方式再去赋值true或者false,可以看效果

@Entry
@Component
struct Page009 {
  @State IsShow:boolean=false

  build() {
    Column(){
      Toggle({type:ToggleType.Switch,isOn:this.IsShow})
      SimpleComponent({IsShow:this.IsShow})
    }
    .width('100%')
    .height('100%')
  }
}

@Component
export struct SimpleComponent {
  @Link IsShow:boolean
  build() {
    Row() {
      Column() {
        Text('Hello World')
          .onClick(()=>{
            if(this.IsShow){
              this.IsShow = false
            }else{
              this.IsShow = true
            }
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

更多关于关于@Link的小问题 HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


@Entry @Component struct Index { @State IsShow:boolean=false

build() { Column(){ Toggle({type:ToggleType.Switch,isOn:this.IsShow}) .onClick(()=> { this.IsShow=!this.IsShow }) SimpleComponent({IsShow:this.IsShow}) } .width(‘100%’) .height(‘100%’) } }

@Component export struct SimpleComponent { @Link IsShow:boolean build() { Row() { Column() { Text(‘Hello World’) .onClick(()=> { if(this.IsShow){ this.IsShow = false }else{ this.IsShow = true } }) } .width(‘100%’) } .height(‘100%’) } }

我忽略了Toggle点击时并没有去更改我的IsShow变量,

关于“@Link的小问题 HarmonyOS 鸿蒙Next”,这里提供直接相关的回答,不涉及Java、C语言或其他不相关建议。

在HarmonyOS(鸿蒙)系统中,@Link通常指的是一种用于应用间或服务间通信的链接机制。它可能用于快速建立不同应用或服务之间的数据交换通道,以实现更高效、更安全的交互。

如果你在使用@Link时遇到了小问题,可能是由于以下几个原因:

  1. 权限问题:确保你的应用或服务已经获得了使用@Link的必要权限。
  2. 版本兼容:检查你的HarmonyOS版本是否支持当前的@Link功能。
  3. 配置错误:检查@Link的相关配置是否正确,包括目标地址、端口等。
  4. 网络问题:确认网络连接正常,且没有防火墙或路由器设置阻止@Link的通信。

解决上述问题后,通常可以解决大部分关于@Link的小问题。如果问题依旧存在,可能是由于系统或应用的特定问题,此时建议直接联系HarmonyOS的官方客服以获取更专业的帮助。

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

回到顶部