我想让用户输入clicks
的倍数,然后用一个按钮来增加它,但是我不知道怎么做。下面是代码。
import React, { Component } from "react";
class Click extends Component {
constructor(props) {
super(props);
this.state = {
clicks: 0,
show: true,
};
}
IncrementItem = () => {
this.setState({ clicks: this.state.clicks + 1 });
};
DecreaseItem = () => {
if (this.state.clicks < 1) {
this.setState({
clicks: 0,
});
} else {
this.setState({
clicks: this.state.clicks - 1,
});
}
};
ToggleClick = () => {
this.setState({ show: !this.state.show });
};
handleChange(event) {
this.setState({ clicks: event.target.value });
}
render() {
return (
<div>
<button onClick={this.DecreaseItem}>Click to decrease by 1</button>
<button onClick={this.IncrementItem}>Click to increase by 1</button>
<button onClick={this.ToggleClick}>
{this.state.show ? "Hide number" : "Show number"}
</button>
{this.state.show ? ( <input type="number" name="clicks" value={this.state.clicks}onChange = {this.handleChange.bind(this)}/>) : (" ")}
</div>
);
}
}
export default Click;
3条答案
按热度按时间up9lanfz1#
您需要将
event.target.value
转换为数字,然后再将其保存在状态中,否则它只是保存为字符串此外,将输入值字段替换为
value={Number(this.state.clicks).toString()}
,以便它不会一直显示前导0
**一个
8hhllhi22#
另一个答案没有考虑最小值和最大值。下面是我的方法(我将其用于RSVP表单,因此使用了guest常量)
wnvonmuf3#
如果对某些人有帮助,这里有一个使用function components的例子。