javascript - 如何在 setState() 方法中构建方法

标签 javascript reactjs function state

我为 React 应用程序构建了这段代码。我希望,一旦我单击“AGGIUNGI JACK”按钮,该州就会在每个设定的时间间隔自动添加该数字。问题是当我单击按钮时,我收到此消息

“setState(...):采用要更新的状态变量对象或返回状态变量对象的函数。”

有没有办法将设置间隔方法嵌套在设置状态中?

import React, { Component } from "react";
import Square from "./components/square";
import "./App.css";

class App extends Component {
  constructor(props) {
    super(props);

    this.state = {
      jack: 777
    };

    this.tantajack = this.tantaJack.bind(this);
  }

  tantaJack = () => {
    this.setState(
      setInterval({ jack: (this.state.jack += 4323423) }, 100)
    );
  };

  render() {
    return (
      <div>
        <Square />
        <p onClick={this.mangiaJack}>{this.state.jack}</p>
        <button onClick={this.tantaJack}>AGGIUNGI JACK</button>
      </div>
    );
  }
}

export default App;

最佳答案

您可以更改顺序并执行 setInterval,该函数采用调用 setState 的函数:

tantaJack = () => {
  setInterval(() => {
    this.setState(previousState => {
      return { jack: previousState.jack + 4323423 };
    });
  }, 100);
};

关于javascript - 如何在 setState() 方法中构建方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51337877/

相关文章:

css - 媒体查询没有正确触发值?

javascript - 需要逻辑或设计模式帮助 - react

r - 在 R 函数中使用 summarize() 进行分组汇总时保留原始变量名

javascript - JS代码$$是什么意思?

javascript - 如何在不注册后面的框的点击事件的情况下点击一个html框?

css - 如何动态控制 react-bootstrap-table-next 表格列的宽度?

mysql - 使用 mysql 查询从 img src 中提取 URL

javascript - 使用 Google-charts api 中的饼图切片将切片点击导航到不同的页面

javascript - 如何设置一个 div 位置依赖于另一个 div 位置?

javascript - 有没有办法调用部分函数