2 つの画面間で特定の要素のアニメーション化を処理できる Stack Navigator を作成しようとしています。Fluid Transitionsreact-navigation
は使用できるライブラリのように見えましたが、 5.Xをサポートしていません。react-navigation v5 でこの機能を備えたパッケージがあれば、それは素晴らしいことです。
StackNavigator
ただし、v5 の現在のパッケージがない場合は、この種の機能を処理できるように を拡張したいと考えています。次のようなものを使用して、のデフォルトのアニメーションを削除できましたStackNavigator
(ここで、のプロップでtransition
ブール値が取得されます:options
Stack.Screen
const CustomTransitionStackNavigator = ({
initialRouteName,
children,
screenOptions,
...rest
}) => {
if (descriptors[state.routes[state.index].key].options.transition) {
return (
<View style={{ flex: 1 }}>
{descriptors[state.routes[state.index].key].render()}
</View>
);
}
return (
<StackView
{...rest}
descriptors={descriptors}
navigation={navigation}
state={state}
/>
);
};
Context
アニメーションを処理するために、トランジションの進行状況をシーンの子孫に渡す (または他の方法)を使用できるようにしたいと考えています。v5 で移行の進行状況を取得する方法はありますか? それとも、これCustomTransitionStackNavigator
はその状態を管理する必要がありますか? ありがとう!