在某些组件开发时,我们需要组件的状态即可以自己管理,也可以被外部控制,useControllableValue 就是帮你管理这种状态的 Hook。
解析
实现的思路
- 接受组件的参数
- 如果在组件的props中,存在名为[valuePropName]的属性,发生变化时直接变更对应的属性
- 如果在组件的props中,存在名为[trigger]的时间,则调用handleSetState方法时,直接触发对应的[trigger]方法
我学习到的点
- 利用变量来储存动态的名称,在函数内部保持了逻辑的相对稳定。
- 内部监听value,valuePropName的时候,其实不需要init时候的状态。所以用useUpdateEffect 比较合理
- value的值不确定,这里可以在自定义hook上定义范型T来支持。
使用
作者:为食猫
链接:juejin.cn/post/689564…
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。