javascript - 如何制作回调函数以填充 textinput onChangeText 的 value 属性
问题描述
在这段代码中,我想要实现的只是在 Textinput 的 value 属性中获取类型化的值。但是,我得到的是空的。AsetState
是异步的,我落后了一步。我是反应新手,我不知道如何制作一个可以给我当前值的回调函数。
我也希望以后使用地图,并制作动态表格,我很欣赏可能适用于地图功能的解决方案。
谢谢
import React from 'react';
import {
View,
TextInput,
} from 'react-native';
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
Email: null,
Password: null,
Address: null,
};
}
EnterValue = (name) => {
return (text) => {
this.setState({
[name]: text,
});
};
};
render() {
return (
<View>
<TextInput
placeholder="enter email"
value={this.state.Email}
onChangeText={this.EnterValue('Email')}
style={{ borderWidth: 2, borderColor: 'skyblue', margin: 20 }}
/>
<TextInput
placeholder="Password"
value={this.state.Password}
onChangeText={this.EnterValue('Password')}
style={{ borderWidth: 2, borderColor: 'skyblue', margin: 20 }}
/>
<TextInput
placeholder="Address"
value={this.state.Address}
onChangeText={this.EnterValue('Address')}
style={{ borderWidth: 2, borderColor: 'skyblue', margin: 20 }}
/>
</View>
);
}
}
解决方案
我会做这样的事情
onChangeText={(e) => this.EnterValue(e.target.value, 'Email')}
(我对 e.target.value 没有信心,如果它为 null 或未定义,请传递 e.target 并记录它,看看你可以从中获得什么值)
然后使用以下内容更改您的功能
EnterValue = (value, inputName) => this.setState({ [inputName]: value});
推荐阅读
- java - 为智能手机的具体模型选择布局参数
- visual-studio-code - 创建一个新的键绑定,将 Ctrl-C 发送到 VSCode 终端
- php - PHP PDO query not inserting - Error HY093
- vue.js - 通过 id 从数组中删除一个项目
- java - 连接 mysql 数据库的 SSLException
- javascript - Configure electron-builder to run powershell script
- php - Laravel Eloquent WhereBetween 与逗号分隔的时间戳?
- python - 用 Keras 复制 sklearn.neural_network.MPLRegressor
- sockets - Apache (apache2) HTTP 服务器在一段时间后停止接受连接并需要重新启动
- virtual-machine - 如何将虚拟机从 fedora gnome-boxes 导出到虚拟机