Javascript 如何在Js/ReactJs中增加/减少点击同一按钮的次数
我想根据按钮点击增加/减少计数器。 脚本: 按钮上有一个初始值-例如:5 当用户单击按钮时,它将增加到+1-o/p:6 但是,当用户再次单击按钮时,它将再次减少到5。 这种情况下,我没有两个按钮-inc和dec来增加/减少计数 代码:Javascript 如何在Js/ReactJs中增加/减少点击同一按钮的次数,javascript,reactjs,Javascript,Reactjs,我想根据按钮点击增加/减少计数器。 脚本: 按钮上有一个初始值-例如:5 当用户单击按钮时,它将增加到+1-o/p:6 但是,当用户再次单击按钮时,它将再次减少到5。 这种情况下,我没有两个按钮-inc和dec来增加/减少计数 代码: 您需要一个附加的状态值来跟踪按钮的状态 class Hello extends React.Component { constructor() { super() this.state = { count: 100,
您需要一个附加的状态值来跟踪按钮的状态
class Hello extends React.Component {
constructor() {
super()
this.state = {
count: 100,
clicked: false
}
}
getCount() {
const clicked = this.state.clicked
if(clicked){
this.setState({count: this.state.count - 1, clicked: false});
} else {
this.setState({count: this.state.count + 1, clicked: true})
}
}
render() {
return <div>
<button onClick={this.getCount.bind(this)}>Like | {this.state.count}</button>
</div>;
}
}
ReactDOM.render(
<Hello name="World" />,
document.getElementById('container')
);
您需要一个附加的状态值来跟踪按钮的状态
class Hello extends React.Component {
constructor() {
super()
this.state = {
count: 100,
clicked: false
}
}
getCount() {
const clicked = this.state.clicked
if(clicked){
this.setState({count: this.state.count - 1, clicked: false});
} else {
this.setState({count: this.state.count + 1, clicked: true})
}
}
render() {
return <div>
<button onClick={this.getCount.bind(this)}>Like | {this.state.count}</button>
</div>;
}
}
ReactDOM.render(
<Hello name="World" />,
document.getElementById('container')
);
我已经尝试了下面的解决方案
class App extends Component{
constructor(){
super()
this.state={
count:0,
}
}
increment(){
this.setState(
{
count:this.state.count+1
}
);
};
decrement(){
this.setState(
{
count:this.state.count-1
}
);
};
reset(){
this.setState(
{
count:0
}
)
}
render(){
return(
<div style={{
position: 'absolute', left: '50%', top: '50%',
transform: 'translate(-50%, -50%)'
}}>
<h1>Current Count :{this.state.count}</h1>
<button className="inc" onClick={(e)=>this.increment(e)}>Increment!</button>
<button className="dec" onClick={(e)=>this.decrement(e)}>Decrement!</button>
<button className="reset" onClick={(e)=>this.reset(e)}>Reset!</button>
</div>
);
}
}
export default App;
除了递增和递减之外,上述代码还有一个重置按钮,用于将计数重置为0。我尝试了以下解决方案
class App extends Component{
constructor(){
super()
this.state={
count:0,
}
}
increment(){
this.setState(
{
count:this.state.count+1
}
);
};
decrement(){
this.setState(
{
count:this.state.count-1
}
);
};
reset(){
this.setState(
{
count:0
}
)
}
render(){
return(
<div style={{
position: 'absolute', left: '50%', top: '50%',
transform: 'translate(-50%, -50%)'
}}>
<h1>Current Count :{this.state.count}</h1>
<button className="inc" onClick={(e)=>this.increment(e)}>Increment!</button>
<button className="dec" onClick={(e)=>this.decrement(e)}>Decrement!</button>
<button className="reset" onClick={(e)=>this.reset(e)}>Reset!</button>
</div>
);
}
}
export default App;
除了递增和递减之外,上述代码还有一个重置按钮,用于将计数重置为0。这似乎是一个奇怪的要求:按钮将始终为5或6,不是吗?是的,这很奇怪,但这是按钮单击I的简单递增递减演示believe@user1234对我的回答有什么想法吗?“我想想出一个办法来改进它。”克里斯托弗·芬戈,这对我来说就是它应该起作用的方式!如果您有任何问题,请告诉我这似乎是一个奇怪的要求:按钮将始终是5或6,不是吗?是的,它很奇怪,但这是演示简单的递增递减按钮点击Ibelieve@user1234对我的回答有什么想法吗?“我想想出一个办法来改进它。”克里斯托弗·芬戈,这对我来说就是它应该起作用的方式!如果您有任何问题,请告诉我