ReactNativeのモーダルには固有のバグがあります。具体的には、モーダルを閉じて、次のモーダルを表示しようとするときに、2つ目のモーダルが表示されません。
これは、iOSのみに生じるバグです。解決策はsetTimeoutを使うことです。
Javascript
const [modal1, setModal1] = useState(false);
const [modal2, setModal2] = useState(false);
const onPressModal1Open = useCallback(() => {
setModal1(true);
}, []);
const onPressModal2Open = useCallback(() => {
setModal1(false);
setTimeout(() => {
setModal2(true);
}, 500);
}, []);
上記のように二つ目のモーダルをtrueにするときにsetTimeoutを使いましょう。時間は500(0.5秒)くらいがスムーズに動きます。私の作っているLangJournalでは0.5秒にしております。
LangJournalは、日記を書くことで英語やフランス語などの外国語を学べるアプリです。英語学習に興味がある方や、私が開発したこのアプリに関心を持っている方は、ぜひインストールしてお試しください。
LangJournalのサイトはこちら