我在文本输入框上设置了模糊事件,以切换按钮(使用React进行呈现)。当您单击按钮时,文本输入框上的模糊事件触发,将按钮从DOM中删除,但按钮单击事件未触发。我尝试在将按钮从DOM中删除的代码中包装100ms超时,它可以工作但感觉很hacky,有更好的方法吗?
以下是代码要点:
以下是代码要点:
const blurHandler = e => {
setShowInput(false); //this prevents buttonHandler from being fired
// setTimeout(() => setShowInput(false), 100); // this works with 100ms, but not with 50ms for example
}
const buttonHandler = e => {
console.log('Button clicked!');
}
const focusHandler = e => {
setShowInput(true);
}
return (
<div>
<input type="text" onFocus={focusHandler} onBlur={blurHandler} >
{showInput && <button onClick={buttonHandler}>Apply to all</button>}
</div>
)