我想知道为什么此代码不起作用:
<TextInput
style={style.inputLogin}
onChangeText={this.handleInputChange}
value={this.state.login}
/>
使用功能:
handleInputChange = (event) => {
console.log(event.target.name);
this.setState({
[name]: value
});
console.log("name => ", [name]);
console.log("value => ", value);
}
我尝试了很多事情,但是我无法获得目标表格。我应该为每个输入做一个功能吗?似乎很愚蠢:/事件仅包含表单的值。当然我可以这样做:
<TextInput
style={style.inputLogin}
onChangeText={(value) => this.setState({value}))
value={this.state.login}
/>
,但这不是我想要的。我想要一些更通用的东西,可适用于每个输入
请帮助我;)
根据doc
onChangeText
回调在文本输入的文本 变化。更改的文本作为单个字符串参数传递给 回调处理程序。
因此,OnchangeText传递的值是字符串,而不是事件。在您的handinginputChange中,您可以像
一样对待text
handleInputChange = (text) => {
console.log(text);
// ...
}
为了仅使用一个函数处理多个文本输入,请像以下方式自定义:
<TextInput
style={style.inputLogin}
onChangeText={(text) => this.handleInputChange(text, "Something to tell your function you're calling it from first textinput")}
value={this.state.login}
/>
,然后
handleInputChange = (text, fromWhichTextInputAreYouCallingMe) => {
console.log(text);
this.setState({
login: text
});
}