首页 > 解决方案 > 如何在 react-navigation 中禁用特定的屏幕过渡 ^3.13.0

问题描述

我试图禁用特定屏幕的屏幕转换,

但我无法禁用它

const MainNavigator = createStackNavigator(
    {
        ... Other routes

        CreditCardsList: {
            screen: CreditCardsList,
            navigationOptions: ({ navigation,screenProps }) =>({
                title: 'Credit Cards List',
                animationEnabled: false,
            }),
            transitionConfig: () => ({
                transitionSpec: {
                    duration: 0
                },
            }),
        },
    }
);

const App1 =  createAppContainer(MainNavigator);
export default App1;

版本:

    "react": "16.8.6",
    "react-native": "0.60.5",
    "react-navigation": "^4.3.1",
    "react-navigation-drawer": "^1.4.0",
    "react-navigation-stack": "^1.10.3",
    "react-navigation-tabs": "^1.2.0",

我几乎尝试了所有方法,请帮助。提前致谢

标签: react-nativereact-navigation

解决方案


干得好:

        navigationOptions: {
                ...
        }
        defaultNavigationOptions: ({ navigation }) => {
            let animationEnabled = true;

            if (navigation.state.routeName == 'CreditCardsList') {
                animationEnabled = false;
            } else if (navigation.state.routeName == 'OtherBlockedPage') {
                animationEnabled = false;
            }

            return {
                animationEnabled
            };
        }

推荐阅读