00:00
你说咱下午干嘛?是不是都要显示什么二级列表去是不是来,我们先来去观察分析一下。这个二级列表来哈。哎,现在呢,我这样做,我点击它。我的这个界面是不是显示为了这头部这个title是不是有变化呀。而且他还要知道是显示的是谁,是不是也就我这个,我当前这个列表。的负分类的名称嘛,这是。能听懂不,这个显示的是不是负分的名称。是的哦,我这个电视,我的这个这个相关的这些什么厨卫电器是不是都是家用电器的一个子分链,那这个地方就要说一个事情。啊,当然我同时也要去发请求,获取什么二级列表吧。能听到不,那这个地方就要说一个事情,我有时候是不是要去获取一级列表显示,有时候要获取什么二级列表显示,那我怎么知道我到底是要去获取一级列表还是获取二级列表呢?我怎么样方便的去做一个设计的问题,其实是。
01:19
就是设计好了以后,我很方便的就能知道我当前是要去发一级分类的请求,还是发二级分类列表的请求,是不是看一个parent ID那个数据啊,什么意思,看好了我这么做的,这其实是个设计啊,来叫parent ID,我开始的值呢是零。那一个默认一上来应该发什么?一获取一级分类列表的请求,听到不?那一旦我想去让他发二级分类列表的请求呢?我先把这个pad ID新给了什么更新。
02:00
把它变成某一个特定值。就行,什么意思,看好了这个说是当前。需要显示的分类列表的什么派ID,就是分ID,听不懂吧,这能懂吧?啊好,当然光有判不够,还有一个东西叫类,因为这个东西要显示,听懂吗?我当时是不是给他一个值它就可以显示,但开始有什么没有,因为我开始显示的是一级分力表,是不是属于默认值是吗?红川大家看看也是啊,这是。啊,这是分类名称啊,这个啊可以写成负分类ID啊,而我们一级分类的分化ID是不是零了。
03:00
没对吧,那其实就在说。看好了,我这个方法要去要去发请求的时候,我一定是零吗。不一定。我其实非常简单,我告诉你。啊,我无比简单,什么意思呢?我把那个状态里面的那个pen ID给它取出来,Z是什么state?能看到吧,我就把这个东西传过去,那也就是说大家想想看,我的这个方法一定是获取。一级分类列表。不。对不?那得看你的这个状态是零还不是零对不对?如果是零,那就获取一级分类列表显示对吧?如果是不是零呢?或者是二级分类表,那我的二级分类列表的速度也应该在这个什么这个状态里面,你才好显示吗。
04:01
那我就来个什么categories什么意思?子分类列表。听懂了吧,子分类列表啊,当然你可要叫什么second second什么意思,第二级的啊,杀一代表指的意思,他开始也是没有知道吧,这是我的什么二级分类力表。开始肯定也没数据吧。有没有看到看到了啊好,那我去发了请求这个地方注意是获取一级或者什么二级分类了是吧,那这个得到这个结果啊,以后大家看到这一个一定是一级分类的速度吗。不一定吧。能懂不?这个是取出分类数组。那取出分类数组数据,那这个地方要强调一下。
05:01
可能是一级的,也可能是什么二级的,对吗?那也就是说我在更新的时候,这个是不是更新一级分类的状态。一级分类速度,分类状态,这能不清楚,这一定是这样的吗?不一定,那什么时候才是去更新一级分类,什么时候更新二级分类,很简单,判断一下什么。拍ID。等不等于所零,对不?如果等于零,是不是更新一级分类状态?那L是不是更新二级分类状态?对不?那更新二级分类状态来看看该怎么写,首先要更新的是哪个属性。
06:00
是categories。对吧。接着这边呢。是不是还是数据,还是这个数据吧,只是那个更新的那个对象的属性是不是有变化。能看到,因为上面的这个写法是个简写,是这个写法简写对不对,能看到不刚好他们名字是一致的,所以我是不是可以简写啊。这个不懂,那就说我的这个方法其实很厉害的,对吧,既可以获取一级分类列表,也可以获取什么。二级分类列表吧。能不能好,我现在就定义啊,当然我现在在这个里面调用的时候,它是获取哪个,这是获取取获取一级分类列表显示对不对,那他现在会获取二级吗。
07:03
不会,因为我的初始值决定了我肯定会获取什么一级的。因为你。那没问题了,我们就要开始继续往下写,嗯,下面写什么就写我。显示了某一个啊一级分成列表,我是不是要点它呀。点它是不是得给它加点进听才去显示啊。能听到不,那我点它最终是不是要发一个对二级分类列表的一个请求。这个能听懂可以吧,好来,那我要给他加监听。找到那个位置。那不就是它吗?是不是,那不就是要给它on什么?可等于这个时候是不是写一个回调函数的处理,This点什么呢?好,这个是不是显示二级分类表,对了,叫show sub categories。
08:11
显示子分类列表嘛,这不很明显吗?能,关键是我显示的是肯定是某个一级分类的。二级列表吧,是不是。那现在有问题了,你就这么写着,肯定有问题,为什么你就想他到时候哪知道去显示谁的子分量。能听懂意思吧,我再去获取一级分类利润,获取二级分类列表的时候,得知道一个什么。排ID。是不是能听到不。告诉我了吗?没有,是不是得看我点的是谁吧,我比如说我点的第一个,那对应的是不是加速电器呢。
09:01
听懂不?而且后面在这上面是不是还要显示将电西啊,那你说不仅要知道他ID,还要知道他的名字吧。光ID还不够是不是?那我有可能是点电脑,那看来是个电脑了。我发请求是不是需要知道电脑ID?我显示是不是知道需要知道电脑的名称。这分裂名称是不是,那这个时候就要说,你想想看,你就这么写,你哪知道是点哪个。所以说其实这个地方要说一个事情。我怎么知道我点的第几个了,我我点的是哪一个呢?其实在这个re里面,它是有参数传给你的,只是转开始没有要没有去声明。我每一行是不是都有自己的论的?因为这是渲染某某一行的吧。听到不,他会把。
10:00
当前这一行所对应的我们每一行是不是对应一个分类的对象?我现在不显示的是分类的数组吗?每一行是不是一个分类的对象?能听到不一行代表一个对象啊,我多行就代表一个数组了吗?而它就会把这个分类的对象。作为参数。传进来。每一行都有自己的啊那个数据对象,那你说有了这个东西我该怎么办。我得想办法将这一个数据传到这个函数里面去,对不对,你说我这么写的啊,你看啊,你看我现在这样写法对不对,这写对吗。那么呢?是我这么写的,安立的一个Z点方法名就是括号,明白吗?那也就是说我要问大家,我现在是不是得去定义一个方法,嗯。
11:03
看好了,来第一个方法。定义在这里吧,啊定义在这里来看着有这个方法,这个方法是不是用来去显示二级分类列表。他是不是要去接收它对应的一级分类对象,注意啊,是去显示指定一级分类对象的什么呢?二级列表,二级审列表。零零吧,那现在你说我问大家这个方法,这个函数是在我点击的时候掉了吗。不是。啊不是,它是在一渲染的时候它就掉,这是里面啊,我觉得这个语法设计有点有点特别让人难受。他你不能直接掉,你要直接掉,他一初始渲染就会掉,而我希望是不是点击的时候才掉啊,他这种语法就有一个事情很难受,我想传自己的参数很别扭,我不好传,知道吧。
12:09
能懂意思不?啊。因为它不能掉,所以说,所以我就不好传自己的参数,听到吗。那怎么去解决这个问题呢?啊,这个时候啊。他不是需要一个函数吗?是吗?他不需要一个函数吗?给他一个函数吧。这也不能称为高级函数啊,大家可以看一下,咱们看是不是高级函数,我我这个我现在是不是给他准备函数,这函数什么时候调。点击的时候法,那你说我点击的时候这个函数题里面干嘛去。
13:00
能不能穿插出来。可不可以传上出了可以,那也就是说你又是一个问题,现在写成这样以后,我的这个函数还是渲染收掉的吗?只能掉了。点D是掉了,也就是说在外面包一个函数。这样就能实现像事件回调函数里面传参数,其实这个这个搞法流量流量变,但习惯了就写就会写。他这个设计让人很难受。能不能看到,但此时可以省略大括号,所以说有没有大括号的没关系,因为我也不在乎那个返回值。听不到。啊,现在我又不在乎他的房子啊,房房子我又不要,能听懂吧,很简单啊,就是有一个问题,什么问题呢?如何向世界回调函数传递参数,就这么一个问题,一个通用的问题,这个问题你开发必然会通的。
14:09
干嘛?外面是不是高一函数啊,先定义的函数,先定义一个回调函数,在回调函数中是不是调用我们提前定义好的事件回调函数。先定义一个啊,命名函数。啊,其实也就是基本上是汇聚一个建函数就行了,来例念。在函数中,第要用。事件回来调用,调用那个处理的函数,并传入什么传入数据。嗯,并传入数据,这是个通用做法啊,是个通用做法。
15:03
就这了吧,也是,只要以后碰到这样的事,你是不是都会这么做?这能听到吧,啊来好。来,那这样的话,我是不是就收到了一个cat。是吧,那我现在是要根据这个开头来去。获取二级列表形式对不对?能听懂不?那这个时候我我告诉大家,我还会去调用这个方法来获取二级密保,但是在调用这个方法前,你想想看,我们的这一个东西要要更新哪个东西呢?这两个。我是不是得先更新状态再去获取二级列表,因为我这个方法就是根据我的状态去获取一级或者二级列表吧。来看一下。心啊,更新什么呢,状态。
16:02
更新状态是哪个this.set我们不有两个数据吗?一个叫D是吧?派是哪个?这是不是负分的ID,负分的对象。他有一个什么字。下划线ID是不是成为我下一个要选列表的部分ID了?还有什么还呢?内记得了category吗?Name?是不好,更新完状态之后接着干嘛。嗯。我下面就是these.get。Cat。啊去了,这个时候调用的是同一个话,上一次调用的时候说的是获取一级分类列表显示吧,这是还是吗。
17:03
不是啦,因为我改变了那个负分ID,我某一个一级分类ID了,是不是,所以我这个是获取什么二级分类列表。能听到不?可卫懂。可以吧,但是这个是不对的,不对的原因啊,是因为我们更新状态它是异步的,不知道前面有没有讲。啊,什么意思呢?就在说一个事情,我现在去打印输出this.state点来它还是零。它还是零,我们等会打印一下,大家看一下啊,看一下你就懂了,这得打印才知道。我们现在是不是前面已经很明确的说了,我要更新的拍成ID,是不是已经是一个新的ID了,按我们的想法肯定不是零了吧。
18:04
能听懂吧,但是。这是一个呃,面试中会涉及到的问题,我把这些先都去掉。来,我现在是不是要去点一下他们是吧。点一下查看子分类嘛,把他们都去掉啊,来点吧。你看4G,你你看它变了吗?没有啊,当然我也没重新动态的显示啊,这一个问题我们现在大家注意观察。把这个也做一下,哪个呢。我们现在是不是有一级分类数组了,也有二级分类数组了,是吧,还有派一是不是。当然要派内是吧,啊,都可以给它取出来都行,都没关系,好那现在有问题,我现在一定是显示一级分类的数组吗。不一定,可能是一级,也可能什么二级,那我应该怎么做啊。
19:01
判断,这个判断一是否等于什么零?如果等于零呢?显示他懂得了。Sub。这个时候是不能动态显示一级分类列表或者二级分类列表。看到了吧,但是现在肯定现在不行不行,刚才大家其实看到了刚是零。把这清理掉走你诶。回去啊。等一下。来看一下。看一下。呃,接着呢,我点它。就你呢?能看到吧,零啊零的话有个什么问题,大家看零,如果当前获取的是零,大家要注意这个问题啊,如果当前翻到我们那个对应位置,如果当前或是零哇,我在这个方法里面看到的这个判断ID那一样还是什么,还是零吧,那还是零的话,大家想它有没有获取二级可吧。
20:13
没有,那自然我现在看的就是什么。空的那边,但实际上我有数据吧。我有。这个就说一个事情,我先简单说一下,后面我们会专门去说这个事情啊,这个set它是一个异步更新的状态。啊,其实这句话呢,也不完全不对,但是先暂时先这么认定啊,有一些特殊情况我们现在还没去说,那这个时候大家其实最好去要看谁去,我现在我我这个语法我不太懂啊,出问题了怎么办?看什么?是不是看文档,去看谁的文档。谁的文档?肯定是RA的文章,不是RA的方法吗?
21:02
这边清楚吧,好进去啊,接着他的这个API索引在这里。那现在是谁的方法?是谁的方法,是的,还是看还是动的。Component,因为this是主建对象啊,This给改了。是他的啊打开,那我们现在是不是要去找到他的什么set方法。去看他的一些说明对不对。这能听到不好。教授。那这里面呢,会有很多的一些说明,其实它最原始的set state的写法,第一个参数可不是传的对象,而传递一个函数,而传对象的方式是它的简写方式。我们现在就是传对象的方式写的。大家看到。
22:00
能看到吧。啊,其实它比较啊,原始的写法是传的,第一个参数是个函数,这个我们后面需要的时候,我们后面有东西需要啊,就会去讲,先暂时用简单的方式,第二个参数是个什么。看懂吧,而这个什么时候才掉呢?说白了就是我们第一个传播对象没问题对不对,第二个是个什么回调函数对不对,回调函数什么字形,下面就要说了啊,回调函数会在啊。状态更新。啊,界面更新后啊,就认啊界面更新完。重新render后应该做,比如说这里面讲重新render后执行。其实也相当于是界面更新了,是一个意思,我把那个render给写出来。
23:02
那你想想看。你说说白了,我这个东西应该在他的值,这两个值是不是有了效果以后再去做呀。说白了,大家看到我把这个拿了放到这里,我再次打印输出,也就是说现在还是零吗?三三。这不得看了,是不是,这能听懂吧,好,我放到外面啊,我这个放到外面它是零,看到大家已经看到了是吧,把这个柱是一样,这个上面是不是零呢?我们来看一下。来先显示的是意义分类吧,没问题,是不是好接着。小李。现在还显示一级分类。不是吧?懂不懂,那也就现在是不是写示20平了,原因就在于我是不是已经能看到最新的判断ID了。那我现在利用了什么?
24:01
是不是它的这个回调函数。首先大家需要去知道啊。此时。在set之后,Set之后能立即获取最新的状态吗?不能立即获取最新的状态,为什么呢?很简单啊,因为set啊是异步更新了的,至少现在这种模式是异步更新的,后面我们再说他不是的时候是什么时候啊。所以异步更新状态就是它不会立即更新状态,而是把这些代码都执行完了之后才是更新状态。而这个回调函数啊,这个回调函数是他状态更新之后才会去执行。那我们在这里面再去获取。
25:01
分类的话,也就是说此时再去调用我得到的那个pad ID,我得到这个判断ID还是我们的零吗?不是吧?是不是已经更新过了。哎,就是这样一个事情。那现在我们是不是能够去显示二级分类列表了,对不当有点小事情需要优化啊,需要小事情需要优化啊,我们把这个呢先停一下。
我来说两句