Reactjs React Native TextInput没有焦点方法

Reactjs React Native TextInput没有焦点方法,reactjs,react-native,react-native-textinput,Reactjs,React Native,React Native Textinput,我一直在四处寻找,似乎找不到一个合适的方法来集中表单中的下一个文本输入。我正在使用React Native 0.61.5和React 16.9.0,并使用Typescript模板设置项目。我在网上发现的大部分内容都使用了React-Native或React的早期版本,我不能降级,因为这是一个公司项目,我们使用的版本取决于开发人员 React Native的文档未显示TextInput上存在的.focus()方法。有onFocus,但这发生在文本输入被聚焦后,它不能帮助我们在点击返回键后将焦点设置

我一直在四处寻找,似乎找不到一个合适的方法来集中表单中的下一个文本输入。我正在使用React Native 0.61.5和React 16.9.0,并使用Typescript模板设置项目。我在网上发现的大部分内容都使用了React-Native或React的早期版本,我不能降级,因为这是一个公司项目,我们使用的版本取决于开发人员

React Native的文档未显示TextInput上存在的.focus()方法。有onFocus,但这发生在文本输入被聚焦后,它不能帮助我们在点击返回键后将焦点设置为屏幕上的特定文本输入

使用REF是一个好主意:

inputRef=React.createRef//(逗号在<之后,因为它一直隐藏代码)

我是这样使用这个ref的:

这个.inputRef?.current?.focus()

但我一直收到一个打字错误,上面写着:

类型“TextInput”上不存在属性“focus”

考虑到文档,这是有意义的,因为我在那里找不到它作为财产

将鼠标悬停在ref属性上时TextInput的Intellisense: (JSX属性)React.ClassAttributes.ref?:字符串|((实例:TextInput | null)=>void)| React.reObject | null |未定义


我希望能够轻触android/ios虚拟键盘上的返回键,并将焦点转移到下一个文本输入,以便提交表单。

使用
React.createRef()创建的对象具有以下形状

{ current: TextInput }
您可以通过执行以下操作来访问文本输入元素:

inputRef.current.focus();
{this.secondTextInput.focus();}
blurOnSubmit={false}
/>
{this.secondTextInput=input;}}
占位符=“secondTextInput”
/>

如何调用焦点函数?你能试试这个吗
this.inputRef.current.focus()
-注意
current
属性我将编辑以显示如何调用它,我正在使用这个.inputRef?.current?.focus();您的reactRef可能使用了错误的类型。如果将鼠标放在
TextInput
中的
ref={…}
位置。intellisense中显示的泛型类型是什么?在TextInput上我得到React.ClassAttributes.ref?:string |((实例:TextInput | null)=>void)| React.reObject | null |未定义,在inputRef上我得到(属性)LoginForm.inputRef:React.reObject当鼠标悬停在inputRef上时,我已经更新了上面的代码以显示intellisense值是什么我以前遇到过这个解决方案,但我一直遇到这样的错误。focus()类型TextInput上不存在&文档也不显示该属性存在于TextInput上。我正在使用此.inputRef?.current?.focus()访问ref;不幸的是,我仍然收到一个ts错误:类型“TextInput”上不存在属性“focus”,您可以复制粘贴您实例化TextInput的位置吗?
<TextInput
    placeholder = "FirstTextInput"
    returnKeyType = { "next" }
    onSubmitEditing={() => { this.secondTextInput.focus(); }}
    blurOnSubmit={false}
/>

<TextInput
    ref={input => { this.secondTextInput = input; }}
    placeholder = "secondTextInput"
/>