Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用相同的onClick按钮将计数器递增至2(范围0-2),然后从2递减至0_Javascript_Reactjs - Fatal编程技术网

Javascript 使用相同的onClick按钮将计数器递增至2(范围0-2),然后从2递减至0

Javascript 使用相同的onClick按钮将计数器递增至2(范围0-2),然后从2递减至0,javascript,reactjs,Javascript,Reactjs,我很难在逻辑上实现这一点。我的计数会减少和增加1,所以我会停留在1,永远不会回到零 使用react: 使用onClick()计数器从0上升到2 柜台:0112 单击相同的onClick()按钮,每次单击时计数器将从2减回到0 柜台:2110 ; onClick(e) { let tmp = this.state.count; tmp++; if(tmp > 2){ tmp = 0; } this.setState({ count: tmp }) }

我很难在逻辑上实现这一点。我的计数会减少和增加1,所以我会停留在1,永远不会回到零

使用react:

使用onClick()计数器从0上升到2

柜台:0112

单击相同的onClick()按钮,每次单击时计数器将从2减回到0

柜台:2110 ;

onClick(e) {
  let tmp = this.state.count;
  tmp++;
  if(tmp > 2){
    tmp = 0;
  }
  this.setState({
    count: tmp
  })
}

我认为这不是最好的答案,但它会激励你。

你能看看这个例子吗:

onClick(e){
如果(this.state.action=='+'){
这是我的国家({
计数:this.state.count+1
});
}否则{
这是我的国家({
计数:this.state.count-1
});
}
if(this.state.count==1){
如果(this.state.action=='+'){
这是我的国家({
行动:'-'
});
}否则{
这是我的国家({
动作:'+'
});
}
}
}

仅使用计数,没有确定增量或减量的逻辑方法。您可以在状态轨迹“增量与减量”中添加布尔值

onClick(e) {
  let count = this.state.increment ? this.state.count + 1 : this.state.count - 1;

  let increment = this.state.increment;

  if (count === 0) {
    increment = true;
  } else if (count >= 2) {
    increment = false;
  }

  this.setState({
    count,
    increment,
  });
}