繁体   English   中英

如果输入为空,如何将状态重置为null?

[英]How to reset the state to null if the input is empty?

我有一些状态设置为null输入,当最终用户键入内容并删除所有内容时,输入返回为空字符串。 如何设置状态以恢复为null 我对下面的IF语句有问题,当用户删除所有句子时,谁不起作用。 状态为""而不是null

谢谢你的帮助


onChange = (e, name, country) => {
    if (e.target.value === "") {
      this.setState({ [name]: { ...this.state[name], [country]: null } });
    }
    this.setState({ [name]: { ...this.state[name], [country]: e.target.value } });
  }

因为在您的IF语句之后,这一行将被执行

this.setState({ [name]: { ...this.state[name], [country]: e.target.value } });

因为@Stefan已经说过您的第二个setState语句在第一个if之后执行。

为了缩短代码并使其正常工作,您可以按照以下方式使用:

onChange = (e, name, country) => {
this.setState({ [name]: { ...this.state[name], [country]: e.target.value ? this.target.value : null } }); 

如果value为“”,未定义,为null或在所有其他情况下为true,则this.target.value为false。

请设定onChange方法

onChange = (event, name, country) => {
   const { value } = event.target 
   this.setState({ 
       [name]: { ...this.state[name], [country]: value ? value : null } 
    });
}

当国家/地区值空白字符串设置为null

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM