第一个这样的问题!希望我做得对.
问题是,当我在浏览器(Chrome)中的事件处理程序的调试器中时,为什么事件处理程序未使用的useState变量不可用?
例如,在调试器中,testBoolean
不可用.(在"观看"选项卡中,显示<not available>
,在控制台中,显示Uncaught ReferenceError: testBoolean is not defined
).
如果我注释掉console.log
行,count
变量也变得不可用.
import { useState } from 'react';
import Game from './Game';
export default function App() {
const [testBoolean, setTestBoolean] = useState(true);
const [count, setCount] = useState(0);
const handleClick = () => {
setCount(c => c + 1);
console.log(count);
debugger
}
return (
<div>
<button onClick={handleClick}>Clicked {count} times</button>
</div>
)
}
我try 过搜索例如react debugger unused useState variables not available in event handler
个,但我发现的大多数线程都处理具有陈旧useState值的事件处理程序,这是一个完全不同的主题.一些 idea :
- Click是一个箭头函数,所以我相信它应该关闭函数组件中的其他cons?
- 当调用
handleClick
时,组件函数已经运行并返回虚拟多姆元素,因此useState变量应该已经声明.
期待任何见解,似乎对于理解事件流/ React至关重要,并且很乐意理解future 的发展.谢谢