【解決】ReactNativeのCardStyleInterPolatorが使えなくなった
ReactNavigationで遷移を実装するとき、遷移の仕方を変える方法、CardStyleInterPolatorが効かなくなっていた。
今回は、ReactNativeでStack.Navigationを使うときに遷移の方法を変えるscreenOptionsが使えなくなってたので、その解決方法を示します。
実際に動かして動作ができることを確認しているので、同じ事象になっている人は参考にしていただければと思います。
目次(クリックで読みたい部分にジャンプできます)
【結論】解決方法
今回は、遷移の仕方を変える方法の結論を先に述べておこうと思います。
解決手順
Optionsに以下を設定しましょう。
screenOptions={{
animation: "fade_from_bottom"
}}
※fade_from_bottomのところは、任意な好きな遷移に変えてください。(種類は後述します)
今回の事象
今回は、Reactnavigation 6.0以降を使っている人で、screenOptionsで遷移の仕方を変える方法がバージョンアップしていました。
今までは、以下のようにして指定していました。
cardStyleInterpolator: CardStyleInterpolators.<あなたの指定したい遷移方法>
ですが、バージョン6.0.0以降で、以前のようにcardStyleInterpolatorを使っても、遷移方法を変えることができません。
Stack.Screenで遷移方法を変える場合も同様
個々の画面で遷移方法を変えたい時に、Stack.Screenの中でoptionsを指定するかと思いますが、そこでも同様に、cardStyleInterPolatorではなく、animationを指定することになっています。
<Stack.Screen
name="SignUp"
component={SignUpScreen}
options={{
animation: "fade_from_bottom"
}}
遷移の種類
fade ~中央からスッと現れる~
fade_from_bottom ~下からスッと~
flip ~紙芝居のような~
simplepush ~flipとの違いがわからない~
slide_from_bottom ~スライド系底から編~
スライドには、他にも「右から(slide_from_right)」「左から(slide_from_left)」などがある。
【余談】インストールする内容も変化(Expoの場合)
バージョンが6.0.0になったことで、今までStack.Navigationを使うときは、結構長いインストール文を入力する必要がありました。(コピペすればいいので手間はないですが。。)
以前までのインストール文(バージョン5.0)
npx expo install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context @react-native-community/masked-view
現在のインストール文(バージョン6.0.0)
npx expo install react-native-screens react-native-safe-area-context
なので、他のサイトをみるとバージョン5.0.0に対応したものもあります。現在は、handlerやreanimatedなどは必要ありませんので、どのバージョンに対応しているかをよく確認すると良いです。
詳しくは、公式ページを参照してみてください。
まとめ
今回は、ReactnativeのNavigationバージョンアップで変わった遷移の方法を紹介しました。
ReactNativeを使ったアプリ開発の方法についても紹介しています。ぜひそちらも併せてご覧ください。