HarmonyOS 鸿蒙Next 这种情况报错是为什么?自定义函数里面不可以改变数组里面的项吗?

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

HarmonyOS 鸿蒙Next 这种情况报错是为什么?自定义函数里面不可以改变数组里面的项吗?

cke_270.png这种情况报错是为什么?自定义函数里面不可以改变数组里面的项吗?


更多关于HarmonyOS 鸿蒙Next 这种情况报错是为什么?自定义函数里面不可以改变数组里面的项吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复
前面两位老哥说得对,[@Builder](/user/Builder)装饰的函数也称为“自定义构建函数”,用于构建UI,不是普通的自定义函数。可以看下文档中的描述:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/arkts-builder-V13

更多关于HarmonyOS 鸿蒙Next 这种情况报错是为什么?自定义函数里面不可以改变数组里面的项吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


[@Builder](/user/Builder)里是写声明式UI的,想在组件初始化的时候重新赋值可以在aboutToAppear里写
Builder里不能这样更改State.它只是构建UI的

在HarmonyOS鸿蒙Next中,自定义函数内无法改变数组项的情况通常与变量的作用域和传递方式有关。鸿蒙系统,与许多其他编程环境一样,区分值传递和引用传递。

  1. 值传递:如果数组是通过值传递的方式进入自定义函数的,函数内部对数组的任何修改都不会影响到函数外部的数组。值传递时,函数接收的是数组副本的引用,而非原数组的引用。

  2. 引用传递:要确保自定义函数内可以修改数组项,需确保数组是以引用方式传递的。这通常意味着在函数声明中,参数类型需要正确设置为引用类型,或者通过指针(在鸿蒙原生开发中虽不常用Java或C语言方式,但概念相通)来传递数组地址。

针对HarmonyOS鸿蒙Next,具体实现可能依赖于你所使用的编程语言及其特性(如JS、TS或鸿蒙特有的ArkTS等)。检查你的函数定义,确保数组是以可修改的方式传递的。例如,在ArkTS中,可能需要通过特定的语法或结构来确保引用传递。

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

回到顶部