Javascript 键盘输入延迟
我正在构建一个react原生应用程序,对此我还相当陌生。我正在使用从一页移动到另一页。目前,我正在使用堆栈导航器 我有两个屏幕,A和B。在屏幕B中,我有一个使用键盘的搜索输入。当在键盘打开时按下标题中的后退按钮时,我导航到屏幕A,但在键盘关闭之前有一个明显的延迟。我已经把键盘放好了;在componentWillUnmount中,组件将在屏幕B中卸载,组件将在屏幕A中装载。不确定如何或是否可以将onClick事件添加到back按钮,因为我认为它位于header组件内部Javascript 键盘输入延迟,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我正在构建一个react原生应用程序,对此我还相当陌生。我正在使用从一页移动到另一页。目前,我正在使用堆栈导航器 我有两个屏幕,A和B。在屏幕B中,我有一个使用键盘的搜索输入。当在键盘打开时按下标题中的后退按钮时,我导航到屏幕A,但在键盘关闭之前有一个明显的延迟。我已经把键盘放好了;在componentWillUnmount中,组件将在屏幕B中卸载,组件将在屏幕A中装载。不确定如何或是否可以将onClick事件添加到back按钮,因为我认为它位于header组件内部 export defau
export default class Locations extends Component {
static navigationOptions = {
title: 'Search Location',
}
renderHeader = () => {
return <SearchBar onChangeText={(text) =>this.handleSearch(text)}
placeholder="Type Here..." lightTheme round />;
}
componentWillUnmount(){
Keyboard.dismiss();
}
导出默认类位置扩展组件{
静态导航选项={
标题:“搜索位置”,
}
renderHeader=()=>{
返回此.handleSearch(文本)}
placeholder=“在此处键入…”lightTheme round/>;
}
组件将卸载(){
键盘;
}
以前有人遇到过此问题吗?在定义StackNavigator时,请尝试传入此选项:
const StackNavigatorConfig = {
navigationOptions: {
header: ({ goBack }) => {
const goBackAndDismissKeyboard = (ev) => {
Keyboard.dismiss()
return goBack(ev)
}
return { left: <Left onPress={goBackAndDismissKeyboard} />}
},
}
}
StackNavigator(RouteConfigs, StackNavigatorConfig)
const StackNavigatorConfig={
导航选项:{
标题:({goBack})=>{
const gobackanddismiss键盘=(ev)=>{
键盘
返回戈巴克(ev)
}
返回{左:}
},
}
}
StackNavigator(路由图、StackNavigator配置)
您只需添加
onTransitionStart: () => Keyboard.dismiss(),
根据stacknavigator定义,无需修改每个backbutton
例如:
const mainScreen = createStackNavigator(
{
MainScreen: {
screen: MainScreen,
}
},
{
onTransitionStart: () => Keyboard.dismiss(),
initialRouteName: 'MainScreen'
}
);
尝试调用“上一步”按钮上的
Keyboard.discouse()
,而不是在“生命周期事件”中。它可能会解决延迟问题。