【发布时间】:2019-07-17 17:00:55
【问题描述】:
我正在尝试使用 React Natives createBottomTabNavigator。我目前正在渲染文档中显示的屏幕。我希望通过使用图标来扩展它,但我想以不同于文档中所示的方式来做。
对于每个屏幕,我都定义了一个navigationProperty 对象,其中包含一个图标和其他信息。
我将tabNavigator 定义如下:
export default createBottomTabNavigator({
About: {
screen: AboutScreen
},
LoyaltyCard: {
screen: LoyaltyCardScreen
},
Contact: {
screen: ContactScreen
},
});
我希望使用defaultNavigationOptions 属性来添加图标,而不是在函数中定义它们我希望使用每个屏幕中定义的属性。为了便于理解,这里是AboutScreen 代码。
class AboutScreen extends React.Component {
navigationOptions = {
tabBarLabel: 'About',
tabBarIcon: 'md-checkmark-circle'
};
render() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>About!</Text>
</View>
);
}
}
正如我们在上面的代码示例中看到的,我在navigationOptions 对象中定义了两个属性。标签和图标。我的问题是,如何在defaultNavigationOptions 配置中使用这些定义的属性?这甚至可能吗?
这是我目前的配置:
defaultNavigationOptions: ({ navigation }) => ({
tabBarIcon: ({ focused, tintColor }) => {
console.log(focused)
return <Ionicons name={navigation.tabBarIcon} size={24} color="green" />;
},
})
谢谢
【问题讨论】:
标签: react-native react-native-tabnavigator