why the console.log(props.name + " promise" + i);
log twice ?
let i = 0;
function CompHook(props) {
console.log(props.name + " CompHook render" + i);
Promise.resolve().then(() => {
i++;
console.log(props.name + " promise" + i);
});
React.useEffect(() => {
console.log(props.name + " useEffect");
return () => console.log(props.name + " useEffect destory");
}, []);
React.useLayoutEffect(() => {
console.log(props.name + " useLayoutEffect");
return () => console.log(props.name + " useLayoutEffect destory");
}, []);
return props.children || "A";
}
console.log(" start ...");
export default function App() {
const [show, setShow] = React.useState(false);
return (
<div className="App">
<h1 onClick={() => setShow((t) => !t)}>Hello CodeSandbox</h1>
{show && (
<>
<CompHook name="a"></CompHook>
</>
)}
</div>
);
}