react-native - React Native 设置输入焦点
问题描述
如何在本机反应中将焦点设置为输入?
我的代码中有一些输入:
<Input
value={CompName}
onChangeText={(text) => this.onChangeText(text, 'CompName')}
style={styles.valueText}
/>
<Input
value={Phone}
onChangeText={(text) => this.onChangeText(text, 'Phone')}
style={styles.valueText}
/>
...
我验证它是否为空。如果为空,我会设置一条警报消息,我想专注于该领域。我该怎么做?
myFunc = () => {
if(CompName === '' || CompName === undefined){
Alert.alert('Company Name is required.');
// set focus here??
return;
}
...
}
谢谢
解决方案
首先,在 react-native 中,它是TextInput
. 这是通过本机元素公开的两种方法。它们是 .focus() 和 .blur() ,它们将以编程方式聚焦或模糊 TextInput。
要使用它,您必须为TextInput
.
<TextInput
value={this.state.compName}
onChangeText={(text) => this.onChangeText(text, 'CompName')}
style={styles.valueText}
ref={(input) => { this.compNameInput = input; }}
/>
myFunc = () => {
if(this.state.compName === '' || this.state.comNam === undefined){
Alert.alert('Company Name is required.');
// set focus here??
this.compNameInput.focus();
return;
}
...
}
我建议将状态用于compName
,例如this.state.compName
推荐阅读
- javascript - Angular 2 - 在最近的元素上设置 ToggleClass
- php - require() 不工作 - NGINX PHP 配置问题
- linux - 如何在 CentOS 上刷新会话而不注销/登录?
- azure - “作业当前被服务器限制。您可能会遇到控制台行输出、作业状态报告和任务日志上传延迟”
- javascript - JEST 测试中的 TS 错误 - SelectOptions.find 不是函数
- python - USB 设备检查器的 Tkinter 条目
- powershell - PowerShell 使用 -gt 比较数字返回错误结果
- sql - 多列uuid主键?
- html - HTML 电子邮件,特定于 Outlook 2007 - 如何修复“同一标记中的文本之间的间距”
- c# - IronPdf HTML 页脚不会占据整个宽度