如果我在没有 useEffect 的情况下使用 setInterval(line 15) 而不是它给出的结果 2^n-1(0,1,3,7,15,31,63...) 而不是 (0,1,2,3,4, ..)。所以我有一些问题
1)为什么我在不使用 useEffect 的情况下直接调用 setInterval 时得到那个输出 2)如果我更改 setCount(第 9 行)并且它通过直接使用 setInterval 而不使用 useEffect(就像我所做的那样)给出正确的输出,有什么办法吗3) 如果没有 useEffcet 就不能使用 setInterval 那么为什么不能呢?
如果我将 setInterval 放在 useEffect 中并最初渲染一次(第 12、13、14 行)而不是它给出正确的输出......但是当我直接使用 setInterval 时我没有得到正确的输出。什么是差异赌注?
在这两种情况下,我都调用了一次 setInterval,但输出是不同的。
import React, {useEffect, useState } from 'react'
export default function IncorrectDependency() {
const [count,setCount]=useState(0)
const inc=()=>{
// console.log(count)
setCount(preVal=>preVal+1)
// setCount(count+1)
}
// useEffect(()=>{
// setInterval(inc,1000)},[]
// )
setInterval(inc,1000)
return (
<div>
<h1>{count}</h1>
</div>
)
}
手掌心
幕布斯6054654
慕码人2483693
相关分类