HarmonyOS 在@State和@Prop的单向传输场景

@State 和 @Prop 的单向传输场景中,@State 变量只能定义在 @Entry 标记的页面中,而不能定义在 @Component 中;是否可以理解为 Harmony 框架的设计如此?

HarmonyOS
2024-12-25 08:44:18
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
FengTianYa

@Prop和@State均可定义在 @Component 中。可参考如下代码:

(注释处同步放开,可测试逆向同步的效果)

1.TestComponentStatePage.ets

import { ComponentStateParent } from '../component/ComponentStateParent'

@Entry
@Component
struct TestComponentStatePage {
  @State message: string = 'Hello World';

  build() {
    Column() {
      ComponentStateParent()
    }
    .margin({ top: 300 })
    .height('100%')
    .width('100%')
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

2.ComponentStateParent.ets

import { ComponentState } from '../component/ComponentState'

@Component
export struct ComponentStateParent {
  // @Prop textTab: string = "666777";
  @State textTab: string = "666777";

  build() {
    Column() {
      Text('内容1').onClick(() => {
        this.textTab = "888"
      })

      ComponentState({ text: this.textTab });
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

3.ComponentState.ets

import router from '@system.router';

@Component
export struct ComponentState {
  // @State text: string = '我是内容'
  @Prop text: string = '我是内容'

  build() {
    Column() {
      Text(this.text)
        .fontSize(20)
        .margin({ top: 10, bottom: 10 })
        .onClick(() => {
          this.text = "999"
        })
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
分享
微博
QQ
微信
回复
2024-12-25 10:20:14
相关问题
State模型如何配置支持http明文传输
2619浏览 • 1回复 待解决
HarmonyOS @ObjectLink@State相关疑问
989浏览 • 1回复 待解决
组件入参加@prop不加区别
2501浏览 • 1回复 待解决
HarmonyOS Prop用法
784浏览 • 1回复 待解决
@State@Link区别是什么?
248浏览 • 0回复 待解决
HarmonyOS 开发@Prop问题
778浏览 • 1回复 待解决
HarmonyOS Navigationrouter使用场景
1601浏览 • 2回复 待解决
HarmonyOS onDidBuild作用应用场景
1038浏览 • 1回复 待解决
HarmonyOS H5app通信是否有传输上限
655浏览 • 1回复 待解决
HarmonyOS 多个@Prop变化顺序问题
1083浏览 • 1回复 待解决
HarmonyOS @Prop参数传递问题
763浏览 • 1回复 待解决
单向绑定问题,有知道方法吗?
1583浏览 • 1回复 待解决
ListItemGroup Lazyforeach结合场景
1701浏览 • 1回复 待解决