我有一些状态设置为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 } });
}
答案 0 :(得分:1)
因为在您的IF语句之后,将执行此行
this.setState({ [name]: { ...this.state[name], [country]: e.target.value } });
答案 1 :(得分:1)
@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。
答案 2 :(得分:0)
请设置onChange方法
onChange = (event, name, country) => {
const { value } = event.target
this.setState({
[name]: { ...this.state[name], [country]: value ? value : null }
});
}
当国家/地区值空白字符串设置回null