在React Hooks中使用第三方库的事件时,很多人会写成这样(指的就是我):const [count, setCount] = useState(0);
useEffect(() => {
const library = new Library();
library.on("click", () => {
console.log(count); // 拿不到最新的 count
});
}, []);这样写会有问题:它只会在这个组件加载时,绑定事件,如果这个事件中用到了其他的state,那么这个状态发生变化时事件中是拿不到最新的state你会想到,我把state放到依赖项中:const [count, setCount] = useState(0);
useEffect(() => {
const library = new Library();
// click 事件会重复绑定
library.on("click", () => {
console.log(count);
});
}, [count]);这样做又会有新问题:click事件会重复绑定这时候你说那我先卸载click事件,在绑定事件:const [count, setCount] = useState(0);
useEffect(() => {
const librar
...
继续阅读
(25)