微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

react hooks useState闭包理解

 const [ count, setCount ] = useState( 0 )
  console.log( 'redner...' );
  const cuRef = useRef( {
    timer: null,
    count: 0
  } )
  const printBtnClick = () => {
    cuRef.current.count = count + 1
    console.log( 'printBtnClick 1', count );
    setCount( count + 1 )
    console.log( 'printBtnClick 2', count );
    // if ( cuRef?.current?.timer ) {
    //   clearTimeout( cuRef.current.timer )
    // }
    // cuRef.current.timer = setTimeout( () => {
    //   console.log( 'printBtnClick 3', count, cuRef.current );
    // }, 5000 );
    setTimeout( () => {
      console.log( 'printBtnClick 3', count, cuRef.current );
    }, 5000 );
    //  btnClick && btnClick()
  }

react hooks 每个状态都会形成一个闭包环境,  如果想让多个闭包之前共享变量,可以用单例模式或者useRef传值方式

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐