Есть ли способ, которым я мог бы экспортировать свои defaultNavigationOptions в отдельный компонент? - PullRequest
0 голосов
/ 19 мая 2019

Я использую один и тот же код в нескольких местах, для каждого экрана у меня есть BottomTabNavigator, использующий реагирование-навигация v3.0.

Проблема заключается в том, что мне нужно передавать реквизиты из родительского компонента в дочерний компонентчерез мой TabNigator (который работает в настоящее время), причина, почему я создаю отдельный TabNavigator для каждого экрана.

Есть ли способ, которым я мог бы оптимизировать свой код?возможно экспортировать мой TabNavigator?

import Chrono from "../../../assets/tools/Chrono"
import Session from "./Session"
import Resultats from "./Resultats"
constructor(props) {
        super(props)
        this.state = {
            myPath: 'DeveloppeCouche',
        }
        this.AppContainer = createAppContainer(this.TabNavigator)
    }
TabNavigator = createBottomTabNavigator({
        MainPage, // current page with some text and pictures of the exercice
        Chrono,
        Session: { screen: () => <Session myPath={this.state.myPath} /> },
        Resultats: { screen: () => < Resultats myPath={this.state.myPath} /> }
    }, {
            defaultNavigationOptions: ({ navigation }) => ({
                tabBarIcon: ({ tintColor }) => {
                    const { routeName } = navigation.state;
                    let IconComponent = Ionicons;
                    let iconName;
                    if (routeName === 'MainPage') {
                        iconName = 'md-home';
                    } else if (routeName === 'Chrono') {
                        iconName = 'md-time';
                    } else if (routeName === 'Session') {
                        iconName = 'md-save';
                    } else if (routeName === 'Resultats') {
                        iconName = 'md-analytics';
                    }
                    return <IconComponent name={iconName} size={25} color={tintColor} />;
                },
            }),
            tabBarOptions: {
                activeTintColor: 'red',
                inactiveTintColor: 'gray',
            },
        })


Я создаю фитнес-приложение для своей диссертации.В моем приложении много разных упражнений, и этот код многократно используется.Есть какие-нибудь подсказки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...