2017-09-06 50 views
4

私は反応するネイティブアプリを構築しており、これはかなり新しいです。私はReact navigationを使ってページ間を移動しています。現在、スタックナビゲータを使用しています。キーボードの遅延反応ネイティブ

私は2つの画面AとBを持っています。画面Bには、キーボードを使用する検索入力があります。キーボードが開いているときにヘッダーの戻るボタンを押すと、画面Aにナビゲートしますが、キーボードが消えるまでにかなりの遅延があります。私はKeyboard.dismiss()を入れました。画面BのcomponentWillUnmountと画面AのcomponentWillMountに表示されます。私はそれがヘッダーコンポーネント内にあると思うように、onClickイベントをバックボタンに追加する方法や方法についてはわかりません。

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(); 
    } 

いずれか前にこの問題がありましたか?

+0

は、[戻る]ボタンを押し上ではなく、ライフサイクルイベントに 'Keyboard.dismissを()'を呼び出す試してみてください。おそらく遅延を解決するはずです。 –

答えて

2

StackNavigatorを定義しますが、このオプションを渡ししよう:

const StackNavigatorConfig = { 
    navigationOptions: { 
    header: ({ goBack }) => { 
     const goBackAndDismissKeyboard = (ev) => { 
      Keyboard.dismiss() 
      return goBack(ev) 
     } 
     return { left: <Left onPress={goBackAndDismissKeyboard} />} 
    }, 
    } 
} 

StackNavigator(RouteConfigs, StackNavigatorConfig) 
関連する問題