Javascript 键盘输入延迟

Javascript 键盘输入延迟,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我正在构建一个react原生应用程序,对此我还相当陌生。我正在使用从一页移动到另一页。目前,我正在使用堆栈导航器 我有两个屏幕,A和B。在屏幕B中,我有一个使用键盘的搜索输入。当在键盘打开时按下标题中的后退按钮时,我导航到屏幕A,但在键盘关闭之前有一个明显的延迟。我已经把键盘放好了;在componentWillUnmount中,组件将在屏幕B中卸载,组件将在屏幕A中装载。不确定如何或是否可以将onClick事件添加到back按钮,因为我认为它位于header组件内部 export defau

我正在构建一个react原生应用程序,对此我还相当陌生。我正在使用从一页移动到另一页。目前,我正在使用堆栈导航器

我有两个屏幕,A和B。在屏幕B中,我有一个使用键盘的搜索输入。当在键盘打开时按下标题中的后退按钮时,我导航到屏幕A,但在键盘关闭之前有一个明显的延迟。我已经把键盘放好了;在componentWillUnmount中,组件将在屏幕B中卸载,组件将在屏幕A中装载。不确定如何或是否可以将onClick事件添加到back按钮,因为我认为它位于header组件内部

  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()
,而不是在“生命周期事件”中。它可能会解决延迟问题。