正如文档里所写,一般情况下,我们并不需要使用这个东西,当我们非要用它,说明遇到了困难😪
这一篇承接上一篇,介绍另一个方式混入TickerProvider,不能说是另一种方法,只能说是另一种方式
上一篇我们是extends
了ComponentState来做的,with了TickerProviderStateMixin,如果我们with上TickerProviderMixin,将UI等逻辑统统放进component里,是不是就不需要重写相关createState方法了
新建相关component,在此直接with上TickerProviderMixin,然后在其state里定义属性,无论是tabController,还是animationController,在宿主Page的State里定义component的state属性,定义相应的ConnOp来分配state,并且在宿主的state里初始化对应component的state,这一步很关键,不然后续会报null,然后在宿主page里的dependencies的slots里增加上这个键值对。
接下来在component的effect里,写赋值方法,可以省去reducer,直接走ctx.state来取值赋值,这里ctx.stfState 是 as 成TickerProvider,区别于上一篇是state 先 with 了TickerProviderStateMixin,然后再as 成重写的state。然后该赋值赋值,该写逻辑写逻辑。
之所以说是另一种方式,因为在fish_redux里,TickerProviderMixin,说白了和上一篇所述一样,它是在Component上的一个mixin,重写了createState方法,然后相关state又with了TickerProviderStateMixin。
我个人倾向于这种方法,如果逻辑是一个模块,没什么耦合,封装性将更强。
各位大佬我是一个菜狗,如编写有误,还请帮忙指正,不胜感激
网友评论