为啥 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) 不能联锁回调函数?的主要内容,如果未能解决你的问题,请参考以下文章
Sql Server 2005导入的数据库为啥是只读,在属性中把数据库为只读修改为False不能成功,