gpt4 book ai didi

javascript - 在 React 中单击按钮时获取文本框值的最佳方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:29:33 27 4
gpt4 key购买 nike

通常在 HTML 中你会这样做:

<form> 
<input type="text"/>
<input type="text"/>
<input type="submit"/>
</form>

我相信这不是 React 的做法。

像我在我的应用程序中那样做的另一种方法,我认为也不是最好的方法。像这样:

buttonclickRequest(){
var reasonn = document.getElementById("testControl").value;
}

<div>
<FormControl id="testControl"/>
<Button id="btnRequest" onClick={this.buttonclickRequest}/>
</div>

在其他 stackoverflow 主题中,我看到了这样的示例:

constructor(props) {
super(props);
this.state = {
firstName: '',
lastName: '',
place: '',
address: '',
email: '',
phoneNumber: ''
};
}
handleClick() {
//do something
}

handleChange = (e) => {
this.setState({
[e.target.id]: e.target.value
})
}

<div>
<input type="text" onChange={e => this.handleChange(e)}/>
<button type="submit" onClick={this.handleClick}/>
</div>

但是我现在也有我的问题,

我不知道如何正确处理多个文本输入:

  1. 您可以创建多个特定的变更处理程序,但效率不高,

  2. 您可以创建一个带有开关的 changehandler 来设置属性

在输入字段上进行句柄更改是否更有效?因为我只想要单击按钮时的输入字段值..

这就是我所说的形式。

Create customer form

那么如何在单击按钮时使用 React 正确获取多个输入数据?

提前感谢您的帮助!

最佳答案

我认为首先你应该将 name 属性添加到你的输入字段并使用名称来设置状态,然后在 handleClick 上使用状态:

constructor(props) {
super(props);
this.state = {
firstName: '',
lastName: '',
place: '',
address: '',
email: '',
phoneNumber: ''
};
}
handleClick = () => {
//do something
console.log(this.state);
// should be something like this {
// firstName: '',
// lastName: '',
// place: '',
// address: '',
// email: '',
// phoneNumber: ''
//}
}

handleChange = (e) => {
this.setState({
[e.target.name]: e.target.value
})
}

render() {
return(
<div>
<input type="text" name="firstName" onChange={this.handleChange}/>
<input type="text" name="lastName" onChange={this.handleChange}/>
<button type="submit" onClick={this.handleClick}/>
</div>
)
}

请注意,名称应与状态 key 匹配。

关于javascript - 在 React 中单击按钮时获取文本框值的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53724962/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com