javascript - 当数量等于 1 时禁用减号按钮。

标签 javascript reactjs babeljs

我有两个按钮,一个是增加数量,一个是减少数量。

<button type="button" className="btn btn-danger btn-sm btn-details-addminus" disabled={this.state.quantity === '1'} onClick={() => this.addMinus("minus")}><i className="ion-android-remove"></i></button>
<strong>{this.state.quantity}</strong> 
<button type="button" className="btn btn-success btn-sm btn-details-addminus" onClick={() => this.addMinus("add")}><i className="ion-android-add"></i></button>

这是加减法:

addMinus = (name) => {

    this.setState({
        quantity: name === "add" ? parseFloat(this.state.quantity) + 1 :  parseFloat(this.state.quantity) - 1 
    })

}

它首先起作用。当数量等于 1 时减号按钮被禁用。但是当您单击添加按钮并尝试减少它时,该按钮不会在数量等于 1 时返回禁用状态并继续减少到负值。

最佳答案

你的问题是你的 disabled 检查需要一个字符串,但是你的 setState 将它更新为一个数字(并且 1 === '1' 为假)。您最好始终将其视为其中之一,数字在这里可能是更好的选择:

<button type="button" disabled={this.state.quantity === 1} ...>
  <i className="ion-android-remove"></i>
</button>

然后是你的更新处理程序

addMinus = (name) => {
  this.setState(prevState => ({
    quantity: name === "add" ? prevState.quantity + 1 :  prevState.quantity - 1 
  })
}

关于javascript - 当数量等于 1 时禁用减号按钮。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51887333/

相关文章:

Angular 9 Uncaught ReferenceError : regeneratorRuntime is not defined

javascript - map 调用中的冒号在 Javascript 中意味着什么

javascript - 如何通过 jQuery 保持鼠标悬停的 DIV 可见?

javascript - 尝试删除时,React 列表会删除错误的项目

javascript - ReactJS 通过 props 回调设置另一个类的状态

javascript - babel 的 Playground 出现意外的前导下划线

javascript - 单击按钮时隐藏和显示

javascript - 在 jQuery 中添加属性(不要覆盖)

javascript - 如何使用 Flow 解决 Untyped 模块错误?

javascript - 分隔线颜色变化 React Material Ui