Я использую один и тот же код в нескольких местах, для каждого экрана у меня есть 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',
},
})
Я создаю фитнес-приложение для своей диссертации.В моем приложении много разных упражнений, и этот код многократно используется.Есть какие-нибудь подсказки?