react-navigationを使って様々な組み方をすると思うんだけど、よくあるのがネストして複雑なnavigationを作るという感じ。
stackNavigatorをネストしまくるとか、TabNavigatorの中にStackNavigatorとか、DrawerNavigatorの中にStackNavigatorとか。
で、今回はDrawerNavigatorについて。
スワイプしたらDrawerが出てきてしまうので、スワイプで戻りたい時にも出てきてしまう。
ということで今日はDrawerのスワイプを一時的にオフにするお話をば。
useEffect(() => {
const parent = navigation.dangerouslyGetParent();
parent?.setOptions({ gestureEnabled: false });
return () => parent?.setOptions({ gestureEnabled: true });
}, []);
こんな感じ。
Screenを開いた際に親のgestureEnabledをfalseにしてあげる的な。
もちろんunMountする際に復活させるのを忘れずに。
昔のバージョンだったらlockModeっていうオプションがあったけどv5からは廃止されてるわけで。
意外とこれに関する情報がなくて困った的なみたいな。

0 件のコメント:
コメントを投稿