Javascript setState未在setInterval中工作

Javascript setState未在setInterval中工作,javascript,reactjs,Javascript,Reactjs,我试图用setInterval中的I值更新stateValue的值,但它只更改I的值,而不更新setInterval中的stateValue fun1 = () => { let i = 0; let intervalId = setInterval(() => { console.log("i:", i); this.setState({ stateValue: i }); i = i + 1; if (i === 3)

我试图用
setInterval
中的
I
值更新
stateValue
的值,但它只更改
I
的值,而不更新
setInterval
中的
stateValue

fun1 = () => {
  let i = 0;
  let intervalId = setInterval(() => {
    console.log("i:", i);
    this.setState({
      stateValue: i
    });

    i = i + 1;
    if (i === 3) {
      i = 0;
    }
    console.log("stateValue:", this.state.stateValue);
  }, 5000);
};

setState()
并不总是立即更新组件。可能 批处理或将更新推迟到以后。这使得读取
成为这种状态
在调用
setState()
之后,这可能是一个陷阱。相反,使用
componentdiddupdate
setState
回调(
setState(更新程序、,
回调)
),其中任何一个都保证在更新后启动 已应用。如果需要根据上一个设置设置状态 状态,阅读下面的
更新程序
参数

您应该使用此选项获取IMMIDATE状态更新值:

this.setState({
    stateValue: i
},() => {
    console.log("stateValue:", this.state.stateValue);
});

看看这个。setState是一种异步方法。这意味着,在编写setState之后,您不能期望状态立即发生更改,先生,如果您现在工作的话