请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于把ref对象作为useCallback依赖的做法

图片描述
为什么第二个参数要写counterRef,这个counterRef不是一直不会变化吗

正在回答

1回答

茵风泳月 2019-05-23 13:34:26

你好同学,你说的没错,正常的话,ref是不会变的,一直指向同一个对象。依然把它传递给useCallback的原因是,让useCallback的逻辑与变量counterRef的逻辑解耦

意思就是对于useCallback的意义是:我不管counterRef会不会变,反正我依赖了它,为了我能正常运行,我必须把它声明出来

你也可以这样理解,万一counterRef会变化,那么useCallback是不会受到影响的,这就是解耦合的意义所在,比如

const oneRef = useRef();
const twoRef = useRef();
const counterRef = <somecondition> ? oneRef : twoRef;

这样的话,counterRef就是会变化的了。尽管让它变化,我们useCallback不需要改动代码。

祝您学习愉快!

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信