HarmonyOS 鸿蒙Next 问题求助,不允许将'@State'装饰属性分配给'@ObjectLink'装饰属性

HarmonyOS 鸿蒙Next 问题求助,不允许将’@State’装饰属性分配给’@ObjectLink’装饰属性

cke_356.png

Assigning the ‘@State’ decorated attribute ‘form’ to the ‘@ObjectLink’ decorated attribute ‘inputItem’ is not allowed. <etsLint>

有大佬知道这是什么问题吗?我之前用的是3.1版本的编辑器,现在下载了4.0版本的就提示这个错误?想问一下这个需要怎么修改,而且虽然提示错误,但不影响它能跑得动代码。


更多关于HarmonyOS 鸿蒙Next 问题求助,不允许将'@State'装饰属性分配给'@ObjectLink'装饰属性的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

API9中将@ObjectLink换为@Prop即可

更多关于HarmonyOS 鸿蒙Next 问题求助,不允许将'@State'装饰属性分配给'@ObjectLink'装饰属性的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这里只有一层,不存在属性的属性这回事,不需要使用@Observed@ObjectLink吧,把ItemColum类的@Observed装饰器去掉,子组件使用@Link或者@Prop就可以了吧

正解,

个人信息

  • 姓名: 张三
  • 年龄: 28
  • 职位: 软件工程师

技能

  • Java
  • Python
  • C++

项目经验

  • 项目一: 在线教育平台
    • 描述: 开发在线教育平台的后端服务
    • 技术栈: Spring Boot, MySQL
  • 项目二: 电商网站
    • 描述: 参与电商网站的前端开发
    • 技术栈: React, Redux

好吧,我想到了一个问题,貌似我陷入思维阻塞了。

消费者提供者装饰器要对应,

那用什么装饰器?常规变量是无法赋值,装饰器中也就是@State比较适合,@ObjectLink不能有常量值。能请教一下怎么修改吗?

在HarmonyOS中,@State@ObjectLink是两种不同的装饰器,用于管理组件状态。@State用于定义组件的内部状态,而@ObjectLink用于引用外部对象的属性。直接或间接将@State装饰的属性分配给@ObjectLink装饰的属性是不允许的,因为它们的职责和使用场景不同。

@State装饰的属性是组件的内部状态,通常用于管理组件自身的状态变化。@ObjectLink装饰的属性则用于引用外部对象的属性,通常用于父子组件之间的状态传递。由于@State是组件内部的状态管理,而@ObjectLink是外部属性的引用,直接赋值会导致状态管理混乱,因此系统不允许这种操作。

如果需要将@State的状态传递给子组件,可以使用@Prop@Link装饰器。@Prop用于单向传递状态,而@Link用于双向绑定。这两种装饰器都适用于父子组件之间的状态传递,并且不会与@State产生冲突。

总之,@State@ObjectLink的职责不同,直接赋值会导致状态管理问题,因此系统不允许这种操作。

回到顶部