【发布时间】:2016-10-26 04:39:23
【问题描述】:
有没有最好的方法来防止NaN?我有数字输入字段,每当我清除该字段时,我都会得到NaN。
_amount: function(e) {
var value = parseInt(e.target.value);
var newValue = (value === NaN ? 0 : value); // Thought this could work
},
<input type="number" value={this.state.amount} onChange={this_amount} />
现在在我的渲染中我有400 - this.state.amount。事情是,当我清除输入字段时,金额状态为null。如何防止这种情况?当我清除该字段时,是否有可能得到零?假设我输入3 然后清除字段,NaN 会弹出。
谢谢
【问题讨论】:
-
真的吗,Sylar?您认为以前没有人问过如何在 JavaScript 中检查数字是否为 NaN?
-
我对这个网站、Stack Overflow 以及它的大多数用户都很感兴趣。我注意到恶霸喜欢捕食新手。那些恶霸是那些不假思索就投反对票的人。是的,我应该研究过,但我忘了。也许是要先研究的通知?妈的,能删帖吗?不!因为已经给出了答案。
-
您似乎过于个人化了这些反对意见。除其他外,downvote 按钮适用于研究不足的问题。这就是它存在的原因。这并不是要“欺负”你。你不是受害者,你只是一个提出问题而不试图先回答的人。
-
@DavidS,考虑到@Sylar 的问题[显然] 是对 React 状态管理错误的反应,我认为这很好。一点指导会更有帮助。例如使用虚假评估将是一个有用的提示 -
value={this.state.amount || 0} -
@BradGreens - 绝对同意 - 我一直在写 react 一段时间,但遇到了类似的问题。顺便说一句,在输入错误的情况下将值强制为零会产生糟糕的用户体验,其中有一个无法删除的零。我改为使用
value={this.state.amount || ''},其中强制为空字符串意味着您可以一直删除数字 - FWIW
标签: javascript math reactjs nan