javascript - TextInput 中的值没有改变?
问题描述
我是一个新手,对本机反应并在以下问题上苦苦挣扎。我正在做一个更新功能,一旦选择了一个用户,那么这个用户的数据就会被填充到他们的专用字段中,TextInput
比如given_name
,family_name
等等。问题是当我尝试从任何TextInput
它不允许我修改填充的数据时,因为文本根本不会改变并且无论如何都保持不变。我知道这种情况正在发生,因为value
我的字段被分配给我想要更新的传入数据,但我该如何解决这个问题并能够修改这个值?
如果您能提供帮助,我将不胜感激。
constructor(props) {
super(props);
this.state = {
given_name: '',
family_name: '',
email: '',
password: '',
UserInfo: '',
};
}
handleGivenName = (text) => {
this.setState({
given_name: text
})
}
handleLastName = (text) => {
this.setState({
family_name: text
})
}
handleEmail = (text) => {
this.setState({
email: text
})
}
handlePass = (text) => {
this.setState({
password: text
})
}
<TextInput placeholder="Last Name"
onChangeText={ this.handleLastName }
value={ this.state.UserInfo.family_name } />
解决方案
尝试在中使用箭头函数onChangeText
:
handleLastName(text) {
this.setState({
family_name: text,
userInfo: { ...this.state.userInfo, family_name: text}
})
}
使成为():
<TextInput
placeholder="Last Name"
onChangeText={(text) => this.handleLastName(text)}
value={this.state.family_name} // remove UserInfo
/>
推荐阅读
- cron - 为什么这个 CRON 任务没有运行 Python 程序 Raspberry Pi
- java - Java / Android:从 url 读取和解析 .txt 文件
- c - 用 .h 编译 .so
- java - 尝试在空对象引用上调用虚拟方法“void android.widget.TableLayout.addView(android.view.View)”
- google-bigquery - BigQueryError.getError() 的原因码
- c# - 按项目数组动态排序列表
- ruby-on-rails - 使用 Rails 中的嵌套属性从表单中的复选框创建多个新记录
- python-3.x - 可拖动正弦函数,单击、移动和释放
- java - 使用 Apache PDFBox 将图像添加到 PDF 时出现空白页面的问题
- angular - Angular/NGRX 中的 observable 中的多个 observables 并在最后合并结果