HarmonyOS 鸿蒙Next GetList为啥会调用了2次

HarmonyOS 鸿蒙Next GetList为啥会调用了2次 如下代码:这段代码的getList为啥会被调用了2次????

@Component 
export struct Test { 
    @State list: number[] = [1, 2, 3]  
    getList() { 
        let relist = this.list.reverse() 
        LogUtill.ds("走了几遍") 
        return relist 
    }  
    build() { 
        NavDestination() { 
            Row() { 
                Column() { 
                    List() { 
                        ForEach(this.getList(), 
                        () => { 
                            ListItem() { } 
                        })
                    } 
                }
              .height('100%') 
            }
        } 
    } 
}

更多关于HarmonyOS 鸿蒙Next GetList为啥会调用了2次的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

第一次,是初始化的, list的值,第二次是reverse这个方法,reverse会改变原数组,所以调用了2次。this.list.reverse()改成this.list.slice().reverse()就只会打印1次。

更多关于HarmonyOS 鸿蒙Next GetList为啥会调用了2次的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对“HarmonyOS 鸿蒙Next GetList为啥会调用了2次”的问题,可能的原因包括但不限于以下几种情况:

  1. 事件触发机制:在鸿蒙系统中,某些事件或行为可能会触发多次回调。如果GetList的调用被绑定到某个事件上(如页面加载、数据更新等),那么当这个事件被触发两次时,GetList也会相应地被调用两次。

  2. 代码逻辑问题:在编写代码时,可能存在逻辑上的重复调用。例如,在某个函数或方法中,GetList被不小心调用了两次,或者由于条件判断的逻辑问题导致多次调用。

  3. 系统或框架行为:鸿蒙系统或使用的框架可能有一些内部机制,导致某些函数或方法被多次调用。这种情况下,通常需要对系统或框架的文档进行深入了解,以找出具体原因。

  4. 异步处理:如果GetList的调用涉及到异步处理(如网络请求),那么由于异步处理的不确定性,可能会导致调用次数的不一致。

为了解决这个问题,建议仔细检查代码逻辑,确认GetList的调用位置和次数,并考虑是否可以通过修改事件绑定、优化代码逻辑或调整异步处理方式来解决。

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

回到顶部