如何在reactjs中一起使用“event.target.value”和“event.target.checked”?

Roh*_*rma 0 javascript reactjs

我有几个输入字段,很少是类型文本,很少是类型复选框,我现在如何才能将所有字段值放在一起,我一次只能输入一个,如下例所示:-

handleChange = event => {
    this.setState({ [event.target.name]: event.target.value });
    this.setState({ [event.target.name]: event.target.checked });
};
Run Code Online (Sandbox Code Playgroud)

我无法同时使用两者。它出什么问题了?

感谢你付出的努力!

Twi*_*her 9

您可以使用空合并运算符

this.setState({ [event.target.name]: event.target.checked ?? event.target.value });
Run Code Online (Sandbox Code Playgroud)

或者显式测试属性是否存在:

if('checked' in event.target) {
    this.setState({ [event.target.name]: event.target.checked });
}

if('value' in event.target) {
    this.setState({ [event.target.name]: event.target.value});
}
Run Code Online (Sandbox Code Playgroud)

  • @jaybhatt 好吧,我没有看到任何对应的。它只是一个非常通用的函数,用于使用输入名称及其值更新状态,无论输入类型是什么(并包装本机 HTML 奇怪之处),如果没有更多逻辑要实现,我看不出有任何理由不使用它。 (2认同)