我正在data: {
car: [ ... ]
处理程序内使用useState
钩子来更改和跟踪onClick
状态。我最初将其设置为focus
,然后在处理程序中将其分别更改为false
和true
。每次更改后,我进行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
。
为什么会发生?我觉得这里缺少了一些非常基本的东西。
答案 0 :(得分:1)
设置状态后,将重新渲染组件。状态更改本质上不是同步的。尝试在useState行下面添加console.log,由于设置了整个组件,因此每次设置焦点时都会看到它被调用。