【问题标题】:Need 0 to be different than null需要 0 不同于 null
【发布时间】:2018-03-10 12:50:04
【问题描述】:

这是我在这个 div 标签中的代码:

<div className="lk-btn-group btn-group clear">
            {this.state.invoiceId ? <button className="btn btn-primary btn-sm pull-left" onClick={() => this.printInvoice()}>{abp.localization.localize('PrintInvoice')}</button> : null}
            {this.state.delivery.delivery && !this.state.invoiceId ? <button className="btn btn-primary btn-sm pull-left" onClick={() => this.printDeliveryNote()}>{abp.localization.localize('PrintDeliveryNote')}</button> : null}
            {this.state.delivery.delivery == null ? <button className="btn btn-primary btn-sm pull-right" onClick={() => {
             this.markAsDelivered()
            }} disabled={!this.state.beginningPercentage || !this.state.gallonsDelivered}>{this.props.completeDelivery}</button> : <span className="label label-default pull-right"><i className="fa fa-check"></i> {this.props.deliveryComplete}</span>} 
</div>

我的问题是如何让输入 0(零)not 与 null 相同?我需要让用户继续输入 0 并让我的禁用按钮 show 而不是 disabled。我相信它发生在上面 div 代码第四行的== null 上,在我看来这禁用了“btn btn-primary btn-sm pull right”

如果用户还没有输入任何内容,那很好,但我还需要将 0 视为输入的任何其他值,而不仅仅是 null 或空,如果这有意义的话。我仍然需要所有其他功能保持不变。

【问题讨论】:

  • 0 在 C# 或 JavaScript 中与 null 不同。不完全确定你的意思(显然你知道===== 是不同的......只是检查)
  • 它在 c#(asp.net mvc 项目)中,但实际文件是一个 .jsx 文件,它编译成一个 .js 文件。我所知道的是,只要我把 0 放在那里,它仍然会禁用按钮。我试过===无济于事。谢谢!

标签: javascript operators jsx


【解决方案1】:

我找到了这个,希望对你有帮助,基本上你可以使用typeof来检查this.state.delivery.delivery的类型

// typeof this.state.delivery.delivery is a number
if (typeof this.state.delivery.delivery === "number")

这个答案扩展了这个原则。 https://stackoverflow.com/a/4514622/6558939

您也可以尝试Number.isInteger(typeof this.state.delivery.delivery),它应该返回满足三元运算符的真或假。

【讨论】:

  • 所以...语法明智,我可以用这个:this.state.delivery.delivery == null 代替这个:(typeof this.state.delivery.delivery === "0") 吗?
  • 是的,应该可以。只要this.state.delivery.delivery 是NaN,(typeof this.state.delivery.delivery === "number") 就会失败,显然Number.isInteger(this.state.delivery.delivery) 也应该工作。
  • 我一定是在做一些错误的语法。我不能让它工作。只是让我的页面空白。谢谢,一样。我还没有找到解决办法。
  • 嗯,真可惜,我用另一种方式更新了答案您给出的代码非常令人困惑:P 三元运算符太疯狂了!它应该让事情变得更短!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-19
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
相关资源
最近更新 更多