为啥 setMouseDown(false) 不能联锁回调函数?

Posted

技术标签:

【中文标题】为啥 setMouseDown(false) 不能联锁回调函数?【英文标题】:Why does setMouseDown(false) can't interlock callback Function?为什么 setMouseDown(false) 不能联锁回调函数? 【发布时间】:2020-10-01 04:53:27 【问题描述】:

如何在fastCount() 中使用 MouseDown = true

我不确定如何在 React-hooks 中更新 setState。

MouseDown 状态不会在 FastCount 函数中更新。

function action(fastCount)
    setMouseDown(true);

    setTimeout(()=> fastCount(),2000);

  




  const fastCount = ()  =>
    console.log(`fastCount에서 실행 : $mouseDown`);

      if(mouseDown)
       setInterval(()=>
        
            setNumber(number => number+1)

          console.log(`fastCount실행됨`), 100);
        




  



  return (  
    <>
      <div>number</div>
        <button onMouseDown=()=>action(fastCount)  onMouseUp=plus>+</button>
        <button onMouseDown=minus>-</button>
    </>
    );

【问题讨论】:

【参考方案1】:

原因是 react 中的状态更新是异步的。您可以自行更新mouseDown,并使用useEffect 等钩子检测mouseDown 的更改。

【讨论】:

以上是关于为啥 setMouseDown(false) 不能联锁回调函数?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery.ajax为啥不能实现return值

为啥php输出不能插入Vue数据数组

为啥 R 的 ifelse 语句不能返回向量?

Sql Server 2005导入的数据库为啥是只读,在属性中把数据库为只读修改为False不能成功,

为啥 SwiftUI ObservedObject 不能在列表行中工作?

为啥我可以禁用但不能启用可丢弃功能?