Cha*_*ing 6 setinterval reactjs react-hooks
为什么这段代码只触发 setInterval 一次然后就停止了......
const MainBar = ()=> {
const [clock, setClock] = useState("")
useEffect(() => {
const interval = setInterval(setClock(clockUpdate()), 1000);
console.log('Im in useEffect', clock)
});
...
Run Code Online (Sandbox Code Playgroud)
而将它传递给另一个函数使它每秒都像这样工作?
const MainBar = ()=> {
const [clock, setClock] = useState("")
useEffect(() => {
const interval = setInterval(()=>{setClock(clockUpdate())}, 1000);
console.log('Im in useEffect', clock)
});
...
Run Code Online (Sandbox Code Playgroud)
抱歉,我是 hooks 和 javascript 新手。
setInterval需要传递一个函数才能执行。在这种情况下,它将每秒执行给定的函数。() => { setClock(clockUpdate()) }实际上是一个匿名函数;没有名称的函数。如果你给它一个合适的名字,它看起来像function updater() { setClock(clockUpdate()); }.
setInterval(setClock(clockUpdate()), 1000)不起作用,因为setClock(clockUpdate())甚至在传递给 之前就已经执行了setInterval。它无法安排它再次运行,因为它不是一个函数,它已经是一个结果。
| 归档时间: |
|
| 查看次数: |
3868 次 |
| 最近记录: |