在onClick处理程序中设置useState时出现问题

时间:2019-10-28 19:31:47

标签: javascript react-hooks

我正在data: { car: [ ... ] 处理程序内使用useState钩子来更改和跟踪onClick状态。我最初将其设置为focus,然后在处理程序中将其分别更改为falsetrue。每次更改后,我进行false,并且希望它与所做的更改有关。

console.log(focus)

就我而言,在此代码段中,我希望在控制台 function App() { const [focus, setFocus] = useState(false); return ( <div className="App" onClick={() => { console.log(focus); setFocus(true); console.log(focus); setFocus(false); console.log(focus); }} > <h1>App</h1> </div> ); } false然后在true中再次看到,但是我看到的都是所有false

为什么会发生?我觉得这里缺少了一些非常基本的东西。

1 个答案:

答案 0 :(得分:1)

设置状态后,将重新渲染组件。状态更改本质上不是同步的。尝试在useState行下面添加console.log,由于设置了整个组件,因此每次设置焦点时都会看到它被调用。