更新文本框,但剩余字母不会被删除react js

时间:2018-08-20 02:36:29

标签: reactjs

我创建了一个更新控制输入

let uVal=this.state.editedVal?this.state.editedVal:this.props.eVal;

<input type="text" value={uVal} onChange={this.handleChange}/>

当我开始编辑该字段时,控件具有state或props值。删除后的第一个字母会再次显示整个props值,否则在其他情况下从不删除,可以使其完全可编辑。

有人可以让我知道怎么了吗

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

那是因为您要进行真实检查。该三元的条件检查:

let uVal=this.state.editedVal?this.state.editedVal:this.props.eVal;

如果editedVal属性不存在,并且editedVal属性还包含其他范围,包括一个空字符串,则将返回false。因此,当您删除输入中的所有字符时,该值为空字符串并更改该三进制的结果。

通常,不建议在Javascript中依赖真实/虚假检查,因为它可能引起与您面临的问题完全一样的问题,以及许多其他难以调试的问题和怪异的行为。检查特定条件并使用===

请注意,您可以将当前的三元数缩短为:

let uVal = this.state.editedVal || this.props.eVal;

这将产生与您相同的结果。尽管您可能最终会更改真实性检查技术,以使新方法可能不相关。