3

この画面があるとしましょう:

スクリーンショット

ユーザーが白いツールチップをクリックすると、別の画面にリダイレクトされます。ときどきアプリが少し遅くなり、ツールチップをクリックして画面が変化するのを確認するのに約 2 秒かかります。問題は、これらの 2 秒間に、ユーザーがこのツールチップをもう一度タップして実行することです。

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

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

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

「ツールチップをクリック」部分:

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

私の画面:

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

4 に答える 4