在实际开发中我们会遇到一个遮罩层会受到多个组件的操作影响,如果我们不采用 redux 之类的全局状态管理,而是选择组件之间的值传递,我们就会发现使用组件的变量来控制组件的显示和隐藏很不方便,更不要说像遮罩层这样一个项目多处使用的公共组件,他的隐藏和显示也只能放到某一个模块的 redux 中,还要解决遮罩层在ScrollView内,会在IOS显示不全,等等bug的问题,可以说烦不胜烦。
2. 解决办法 使用当前页面模块的 redux 来管理当前页面中的遮罩层;使用 useReducer 来管理当前页面中的遮罩层;使用 hook 来实现遮罩层的清除和添加。 3. 方案分析 方案一和方案二其实原理都一样,就是将控制遮罩层的变量集中管理,但是缺点也很明显,就是我们需要多少遮罩层,就会创建多少个变量,维护这些变量来控制遮罩层的显示与隐藏。维护多变量控制多遮罩层。方案三我采用的是使用一个变量来接收遮罩层,通过改变变量的值来实现遮罩层的显示与隐藏。维护单一变量。 4. 保存 hook 初始化配置 在 hook 初始化时,使用 useRef 对初始化配置进行记录;防止对 options 改变时,没有及时更新,因此监听 options,发生变化时,对初始化配置进行更新。 let【taro react】 ---- 常用自定义 React Hooks 的实现【四】之遮罩层,p4 506
cpugpu芯片开发光刻机
跨学科知识体系
8
文件名:【taro react】 ---- 常用自定义 React Hooks 的实现【四】之遮罩层,p4 506
【taro react】 ---- 常用自定义 React Hooks 的实现【四】之遮罩层
1. 问题场景
同类推荐
-

【QT】Ubuntu 交叉编译安装 QT 5.12.7 源码,优米umi x1
查看 -

【QandA C++】面向过程、面向对象、多态的原理、虚函数表、虚表指针、虚析构、虚构造、虚函数、纯虚函数等重点知识汇总,索尼cs19
查看 -

【ROS】使用vscode浏览navigation2源码时,提示:没有那个文件或目录,锋哲v6t
查看 -

【RealTek sdk-3.4.14b】RTL8812F 5G WiFi ETSI认证增加144~165信道支持修改,ex223
查看 -

【Redis】Redisson分布式锁原理与使用,简爱7g(redisson分布式锁实现原理)
查看 -

【Redis】Redis中的数据结构和内部编码,wifi气球(redis内部数据结构详解)
查看 -

【Redis】深入探索 Redis 的哨兵(Sentinel)机制原理,基于 Docker 模拟搭建 Redis 主从结构和哨兵分布式架构,天龙C360
查看 -

【Rust】003-基础语法:流程控制,Nvidia GeForce 8500 GT
查看 -

【Rust】结构体与枚举,豹米(rust 结构体)
查看