Javascript 需要0与null不同

Javascript 需要0与null不同,javascript,operators,jsx,Javascript,Operators,Jsx,这是我在这个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')}<

这是我在这个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>

{this.state.invoiceId?this.printInvoice()}>{abp.localization.localize('printInvoice')}:null}
{this.state.delivery.delivery&&!this.state.invoiceId?this.printDeliveryNote()}>{abp.localization.localize('printDeliveryNote')}:null}
{this.state.delivery.delivery==null{
this.markAsDelivered()
}}disabled={!this.state.BeginingPercentage | | |!this.state.gallonsDelivered}>{this.props.CompletedDelivery}:{this.props.deliveryComplete}
我的问题是如何将输入值0(零)设置为而不是与null相同?我需要用户能够继续并输入0,让我的禁用按钮显示,而不是禁用。我相信它发生在上面div代码第四行的
==null
处,在我看来,它似乎禁用了“btn-btn-primary-btn-sm-pull-right”


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

我发现了这个,我希望它能帮助您,基本上您可以使用
typeof
检查
this.state.delivery.delivery的类型

// typeof this.state.delivery.delivery is a number
if (typeof this.state.delivery.delivery === "number")
这一回答扩展了这一原则。


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

0在C#或JavaScript中与null不同。不太清楚你的意思(显然你知道
=
=
是不同的…只是检查一下)它可能在c#(asp.net mvc项目)中重复,但实际的文件是一个.jsx文件,编译成一个.js文件。我所知道的是,每当我在那里输入0时,它仍然会禁用按钮。我试过了,但没有用。谢谢所以语法方面,我是否可以将此替换为:
this.state.delivery.delivery==null
(typeof this.state.delivery.delivery==“0”)
?是的,应该可以
(typeof this.state.delivery.delivery==“number”)
this.state.delivery.delivery
为空时应该会失败。isInteger(this.state.delivery.delivery)也应该工作。我一定是在语法方面做了一些错误的事情。我不能让它工作。只是让我的页面空白。谢谢你,尽管如此。我还没有找到解决方案。嗯,真遗憾,我用另一种方法更新了我的答案。你应该能够确定数字是否为整数。尝试用
this.state.delivery.delivery==null
替换为
number.isInteger(typeof this.state.delivery.delivery)
我也明白你的意思了,给你的代码非常混乱:P三元运算符是个疯子!它应该让事情变得更短!