useState闭包情况
import React from "react";
import { useState } from "react";
export default function Closure() {
return (
<div>
闭包陷阱
<UseState />
</div>
);
}
const UseState = () => {
const [num, setNum] = useState(0);
const handleClick = () => {
setTimeout(() => {
setNum(num + 1);
}, 1000);
};
return (
<div>
<span>{num}</span>
<button onClick={handleClick}>+</button>
</div>
);
};
useEffect闭包情况
import React from "react";
import { useState, useEffect } from "react";
export default function Closure() {
return (
<div>
闭包陷阱
<UseEffect />
</div>
);
}
const UseEffect = () => {
const [num, setNum] = useState(0);
useEffect(() => {
setInterval(() => {
console.log(num);
}, 1000);
}, []);
return (
<div>
<span>{num}</span>
<button onClick={() => setNum(num + 1)}>+</button>
</div>
);
};
520

被折叠的 条评论
为什么被折叠?



