HarmonyOS 鸿蒙Next 数组元素绑定渲染的问题

HarmonyOS 鸿蒙Next 数组元素绑定渲染的问题 The regular property ‘item’ cannot be assigned to the @ObjectLink property ‘task’. 编译的时候提示这个报错,操作数据的时候,页面无渲染

Screenshot_20240311_153100_com.example.yufengnongye.jpg


更多关于HarmonyOS 鸿蒙Next 数组元素绑定渲染的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

cke_148.png

通过JSON直接解析出来的数据@ObjectLink 是不管用的

你可以new ShList(),然后赋值就可以了

更多关于HarmonyOS 鸿蒙Next 数组元素绑定渲染的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


不行,这样写报错,

这样处理后可以解决

图片

照着二楼的改报错

name没有实现同步, 与这个错误有关。须先解决这个问题, 才能谈渲染

The regular property 'item' cannot be assigned to the @ObjectLink property 'task'.

看得懂报错,我是说怎么解决??因为看文档,嵌套或是数组,用的是@ObjectLink来绑定数据,现在一样是用这方法,

好家伙, 听君一席话, 如听一席话,

在HarmonyOS鸿蒙Next中,数组元素的绑定渲染通常通过ArkUI框架的ForEach组件实现。ForEach组件允许开发者遍历数组,并将数组中的每个元素动态渲染到UI中。ForEach需要两个关键参数:arrayitemGeneratorarray是要遍历的数组,itemGenerator是一个回调函数,用于生成每个数组元素对应的UI组件。

例如,假设有一个数组items,可以通过以下方式绑定渲染:

@Entry
@Component
struct MyComponent {
  private items: string[] = ['Item1', 'Item2', 'Item3'];

  build() {
    Column() {
      ForEach(this.items, (item: string) => {
        Text(item)
          .fontSize(20)
          .margin(10)
      })
    }
  }
}

在上述代码中,ForEach遍历items数组,并为每个元素生成一个Text组件。Text组件的内容为当前数组元素的值。

需要注意的是,ForEach组件默认使用数组索引作为唯一标识符。如果数组元素的顺序可能发生变化,建议为每个元素提供一个唯一的id,并通过itemGenerator的第二个参数指定,以确保UI的正确更新。

例如:

ForEach(this.items, (item: string, index: number) => {
  Text(item)
    .fontSize(20)
    .margin(10)
    .id(index.toString())
})

以上是HarmonyOS鸿蒙Next中数组元素绑定渲染的基本实现方式。

回到顶部