React native 如何在React Native中自动打开键盘?
我的React本机应用程序中有一个屏幕,其中几乎没有文本字段 我想知道是否有任何方式,在屏幕上加载我的关键字自动打开,并集中在我的第一个文本输入字段React native 如何在React Native中自动打开键盘?,react-native,React Native,我的React本机应用程序中有一个屏幕,其中几乎没有文本字段 我想知道是否有任何方式,在屏幕上加载我的关键字自动打开,并集中在我的第一个文本输入字段 我在android中搜索类似于stateAllwaysVisible的东西。当聚焦时,键盘应该自动打开。您可以使用autoFocusprop使其在元素装入时聚焦()由于堆栈导航,所选解决方案对我不起作用(请参阅所选解决方案的“SoundStage”注释) 我将一个新变量openTheKeyboard添加到最初设置为false的状态 我的黑客解决方案
我在android中搜索类似于
stateAllwaysVisible
的东西。当聚焦
时,键盘应该自动打开。您可以使用autoFocus
prop使其在元素装入时聚焦()由于堆栈导航,所选解决方案对我不起作用(请参阅所选解决方案的“SoundStage”注释)
我将一个新变量openTheKeyboard
添加到最初设置为false
的状态
我的黑客解决方案:
componentDidMount() {
this.setState({ openTheKeyboard: true });
}
componentDidUpdate() {
if (this.state.openTheKeyboard) {
this.textInput.focus();
this.setState({ openTheKeyboard: false });
}
}
我的方式(在组件渲染上聚焦和显示键盘时出现问题)
从'react native'导入{InteractionManager,TextInput};
...
inputRef=React.createRef();
componentDidMount(){
这个。focusInputWithKeyboard()
}
focusInputWithKeyboard(){
InteractionManager.runAfterInteractions(()=>{
this.inputRef.current.focus()
});
}
render(){
}
这似乎在我的模拟器中工作。尚未在真实设备上确认
构造函数(道具){
超级(道具);
this.buildNameTextInput=React.createRef();
}
{
this.buildNameTextInput=true
this.props.setSaveBuildModal(true)
}}
>
保存构建
this.props.setCurrentBuildName(buildName)}
值={this.props.buildName}
/>
您可以将对TextInput的引用维护为 textInputRef
使用这个.textInputRef.focus()这个技巧对我很有效
setTimeout(() => InputRef.current.focus(), 100)
看起来我在浏览文档时错过了这一点:(…让我再试一次…
autoFocus
在通过堆栈导航加载页面时似乎不会触发。它最终会聚焦textInput
,但不会打开键盘。通过refs手动聚焦不会触发键盘。有一个键盘。discover(),但我没看到演出在React Native docs上也是如此。@Dan这里也有同样的问题。试图通过ref聚焦文本输入并打开键盘。您找到解决方案了吗?此答案不回答问题,它是针对特定情况的解决方法。如果不想/可以使用自动聚焦,则此答案将不起作用。键盘未显示在焦点上可能是什么原因如果在调用.focus()
时键盘未显示?
setTimeout(() => InputRef.current.focus(), 100)