javascript - 如何在 setState() 方法中构建一个方法
问题描述
我为 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);
};
推荐阅读
- python - 将excel中的多列合并为pandas中的一列
- c - 如何确定连接是否使用了来自 apache2 httpd 模块的加密/SSL?
- unit-testing - 组件中的单元测试http get方法
- django - 无法在 django 中访问 OneToOneField 的子项?
- carousel - AEM 6.3 上轮播的个性化
- javascript - 我有一个包含 n 个邮件 ID 的数组。我想按照它的域名排序
- sql - 使用 > 比较列时出错
- angular - Angular CLI 在构建之前修改 TS 文件?
- php - 我想在登录后将用户重定向到个人资料页面
- android - onDestroy 方法未在 android o 版本中调用