关于 useEffect 内部不能修改 state 的问题
来源:14-16 Hooks使用中的几个注意事项
emn
2022-04-12
有两种方式仅供参考
// 第一种方式
import { useEffect, useState } from 'react'
const HelloWorld = () => {
const [count, setCount] = useState(0)
useEffect(() => {
const timer = setInterval(() => {
setCount(pre => pre + 1)
}, 1000)
return () => clearInterval(timer)
}, [])
return <p>{count}</p>
}
export default HelloWorld
// 第二种方式不推荐
// 首先 eslint 会提示把 count 当做依赖项
// 其次会频繁调用创建定时器和销毁定时器,但是也可用
import { useEffect, useState } from 'react'
const HelloWorld = () => {
const [count, setCount] = useState(0)
useEffect(() => {
const timer = setInterval(() => {
setCount(count + 1)
}, 1000)
return () => clearInterval(timer)
}, [count])
return <p>{count}</p>
}
写回答
1回答
-
双越
2022-04-12
非常好~
022022-07-17
相似问题