小编mee*_*iya的帖子

如何在react中使用setInterval而不使用useEffect

如果我使用 setInterval(line 15) 而不使用 useEffect ,那么它给出的结果是 2^n-1(0,1,3,7,15,31,63...) 而不是(0,1,2,3,4, ..)。所以我有一些问题
1)为什么当我直接调用setInterval而不使用useEffect时我会得到该输出2)如果我更改setCount(第9行)并且它通过直接使用setInterval而不使用useEffect给出正确的输出(就像我所做的那样)有什么办法3)如果没有useEffcet就不可能使用setInterval,那么为什么不可能呢?

如果我将 setInterval 放入 useEffect 中并最初渲染一次(第 12,13,14 行),那么它会给出正确的输出......但是当我直接使用 setInterval 时,我没有得到正确的输出。什么是差异赌注?
在这两种情况下,我都调用 setInterval 一次,但输出是 diff。

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>
        )
    }
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-redux

0
推荐指数
1
解决办法
2246
查看次数

标签 统计

javascript ×1

react-redux ×1

reactjs ×1