00:00
王总,嗯,咱们这个视频呢,啊,主要是给大家去阐述一下,在咱们鸿蒙开发当中啊,特别是在那个列表或者是网格,或者说是瀑布流的时候,我们都会用到一个for each, 或者说lay for each, 对吧,那么。我们当我们使用这个组件的时候呢,对吧,它其中有哎。三个参数对吧?呃,第一个就是我们的一个数据,那么第二个就是我们遍历每一个条目,第三个就是我们的一个什么啊键值生成函数。那么咱们今天呢,就着重讲一下第三个。第三个参数,也就是键值生成函数,也就是k generate, 对吧?它为什么,为什么说它是在咱们负循环当中啊,特别是在负一指或者说来负一指当中,为什么对吧,举足轻重,那前两个没必要给大家去阐述啊,无非就是第一就是数据源,第二个就是说呃,Item战斗里的就是每个条目去编利每个条目,第三个就是给设置。
01:08
第三个,哎。就是设置我们的一个兼职,那么它是非常重要的,那么我们重点呢,就去了解一下,哎,第三个函说OK。回过头来我们看一下我们这个代码啊,很很简单对吧,啊一个克姆对吧,里面有一个啊历史组件,历史组件啊,对吧,有一个负一值,负一值呢,这有六个条嘛,对不。然后呢,去设置里面有一个S轴点去展示,应当然我们去运营一下,看一下实际效果啊。好,已经运行了,哎,我们看到,哎,其实发现怎么着那也没问题啊,对吧,嗯,你看我们该有的条目对吧,该有的数据也都展示了,OK.那咱们去就去,呃。给他去动态的去来添加几条数据,哎,我们看看他,哎,接下来还有没有哦问题。
02:05
好,我们既然要给它添加数据的话,那我们把这个数据给它抽取成一个,嗯。漂亮。放到上面。用那个。At stair去修饰一下。它是一个副词。OK, 我直接把我们这个固定的数据给它替换一下。同样的在它的上面呢,哎,我们定一个啊button。就是点击的时候啊,我们去增加这个呃数据。特别行,特别吧,最佳说理。然后呢,来。On c.OK.
03:00
然后呢,当你点击的时候,我咱们去动态的去追加2条数据吧。不是。是你牙该调模。齐了是吧。调母亲。然后呢?Tell me about.OK, 来,咱们去运行一下,看看有没有问题。好,已经运行起来了,咱们看一下啊,这是默认的数据,我们去点击追加数据。哎,追加了哎两条对吧,哎,条目7和条目二咱们再去点击一下,再去点击一下,按照我们正常的一个逻辑而言,怎么着他会继续往下进行追加。对不对,哎,这咱们这是无论说你是在安卓还是在iOS,还是在其他信用对吧,我们呃,毕竟点击上之后会让这个呃原始的数据就追加两条对吧?来我们再去点击一下,诶发现怎么着。
04:06
你点。100次,怎么着也不会进行追加了。哎。这是什么问题呢?这就是刚才,哎,咱们去介绍了,它其中有啊3个。参数对吧,其中的第三个就是care generate对吧,为什么对吧,啊是哎,非常是重要的。其实其实解决这个问题呢,最主要呢,就是说我们一定要知道每一个条目它的啊K呢是唯一的。这是唯一的,也就是说我们这个第三个,也就是我们点击进来再去看一下。也就是第三个,哎,进generate对吧,它是为数据源,也就是为我们的数据源,对吧,每一个。
05:09
数据。对吧,生成唯一而且持久的建制。且持久的坚持。对吧,它反,嗯,那么这个返回值呢,当然我们也可以去自己定义啊,对吧?呃,也可以,呃呃,如果说我们去自己定义的话,那么这个呢,刚才已经说了,一定要确保唯一,如果说你不唯一,就会出现我们刚才那个问题,就是说我们追加数据,哎,第一次追加是没问题,那么我们再次追加的时候就会出现问题,为什么会出现问题,因为它的怎么着间值不为一。为什么他不唯一,你看我们第三个,他说是反馈了什么。返回来一个。当前的一个条目对吧。对吧,使用它你第一次对吧,它是没有的对吧,没有条目7和条目8 OK是没问题,当你第二次的时候,它已经有了,对吧,条目中已经有条7和条目八了,那么你这个键值就不唯一了,对吧?那么你不唯一的情况下怎么着?
06:09
我们这个数据,哎,就无法进行进行那个渲染,当然你也可以不写啊,嗯,你不写的情况下,它会以当前的我们这个索引,还有呃,当前我们这个索引,以及你这个呃数据的一个呃,String.就是杰森的一个s strings格式而形成的,其实默认的已经满足我们大部分需求了啊,所以说如果说在咱们实际开发中呢,如果说你很难决定对吧,这个是是唯一的,那么我们直接用默认的接口。也就是他默认的。其实。当然了,默认的话。我把默认也给大家去写一下吧。他是默认的话,它是。嗯嗯。
07:00
嗯,代应该是。夹缝。然后我们大家在想,这个就是他们默认的。那么我们使用这个默认的话啊,是完全是没有问题的,我们可以去运行一下。还是是刚才的,还有我们去加对吧,你可以无限次去添加,因为什么,因为他们的啊,价值已经发生了变化了,对吧,当然你也可以去不写啊。当然,我们也可以不写。我们去一下。哎,我们去追加。对吧。也是没有问题的,对吧,你可以不写,使用默认的,但是如果你要写。第三个参数,那么必须怎么着,要保证它的一个。
08:03
唯一性。我说你嗯,你不写的情况下,我刚才已经说了对吧,系统会给我们默认去提供对吧,兼值的一个参数就是呃,这个对吧。嗯,所以说呢,你在正常我们正常是开发中啊,你可以去不写,你不写的情况下呢,啊,他也会默认的去会给我们生成一个兼职兼职分值规则,但是如果说你要写。你要写对吧,一定要保证我们这个兼职的一个。啊,一个唯一。好了,嗯,基本上这个没什么,没什么难的啊,就一对就一个是参数就给大家去,呃,说了这么多,其实就就一个宗旨了,就是呃,当我们在使用for each或者是let for each的时候,一定要注意第三个参数就是kment这个参数对吧,它保证我们这个它一定要保证一个唯一性啊,否则就会造成我们刚才嗯,刚才的就是数据啊,哎,无法哎渲染的情况。
09:11
OK, 嗯,行,那咱们这个视频就先到这里,感谢大家。
我来说两句