Javascript 如何修复陈旧状态?

Javascript 如何修复陈旧状态?,javascript,reactjs,Javascript,Reactjs,这是我的代码的简化版本。修复过时状态的好解决方案是什么 想要的行为:焦点输入字段->出现下拉列表(状态为真)->单击按钮->下拉列表消失(状态为假) 实际行为:焦点输入字段->下拉渲染(状态为真)->单击按钮->下拉消失0.1秒(状态为假)->出现下拉列表(状态为真) constdropdownselector=()=>{ const[toggleEnabled,setToggleEnabled]=useState(false); const handleToggle=()=>setToggle

这是我的代码的简化版本。修复过时状态的好解决方案是什么

想要的行为:焦点输入字段->出现下拉列表(状态为真)->单击按钮->下拉列表消失(状态为假)

实际行为:焦点输入字段->下拉渲染(状态为真)->单击按钮->下拉消失0.1秒(状态为假)->出现下拉列表(状态为真)

constdropdownselector=()=>{
const[toggleEnabled,setToggleEnabled]=useState(false);
const handleToggle=()=>setToggleEnabled(!toggleEnabled);
const handleFocus=()=>setToggleEnabled(true);
返回(
{toggleEnabled&&(
我是个失败者
)}
)
}

当新状态取决于以前的状态和/或道具时,您应该将函数传递给
setState

const handleToggle = () =>
  setToggleEnabled((previousToggle) => !previousToggle);

这是不完整的代码,您缺少按钮的关闭标签,
val
未定义。请更新问题,以包含完整的代码,最好是一个更可靠的例子,实际复制您的问题。
const handleToggle = () =>
  setToggleEnabled((previousToggle) => !previousToggle);