2017-03-26 3 views
2

をナビゲートするために複数のインスタンスを防ぐ:は、ナビゲーションに反応:のは、私は、この画面を持っているとしましょう、同じ画面に

screenshot

、ユーザーが白ツールチップをクリックすると、それは別の画面にリダイレクトされます。アプリが少し遅れることがあり、ツールチップをクリックすると画面が変わるのを2秒くらいかかります。問題は、これらの2秒間に、ユーザが再びこのツールチップにをタップすることです。

私の得た結果は、私のStackNavigatorに新しいスクリーンの2つのインスタンスがあることです。つまり、新しい画面が表示されますが、「戻る」をクリックすると、この「ヒッチハイクマップ」画面には戻りませんが、同じ画面の別のインスタンスに戻ります。

2秒間にコールアウトで5回クリックした場合は、「戻る」を5回クリックしてマップ画面に戻る必要があります。それを防ぐ方法はありますか? StackNavigatorにインスタンスを1つだけ入れるには?

私はReact Navigation、より正確にはStackNavigatorを使用しています。ここに私のコードは次のとおりです。

「をクリックし、ツールチップ上の」一部:

<MapView.Marker 
    onCalloutPress={() => this.props.navigation.navigate('spotDetails', { spotId: marker.id })} 
/> 

マイスクリーン:

const HMapNavigator = StackNavigator({ 
    HMap: { screen: HMapViewContainer }, 
    spotDetails: { screen: SpotDetailsViewContainer }, 
}); 

答えて

4

は、複数のナビゲーションの問題が報告されており、より詳細hereがあります。

react-navigation(v1.0.0-beta.7)はベータ版であり、まだビルド中です。この機能が実装されるまで、手動でデバウンスを処理する必要があります。

オプション

  • あなたはReduxの

lodash便利なデバウンスユーティリティを提供を使用している場合、ナビゲーションがonPressロジックやアクションで

  • デバウンスを開始したら、ボタンを無効にし、あなたが1つを探しているならば。

  • 関連する問題