如何将状态值从组件传递到TabNavigator

时间:2019-09-11 06:40:35

标签: javascript react-native react-navigation react-props

我想通过propStack将道具从组件传递到createBottomTabNavigator

const TabsNavigator = createBottomTabNavigator({
    'Notification': {
        screen: Private,
        navigationOptions: () => ({
            tabBarIcon:
            <Text style={{ color: '#FFFFFF' }}>
                3
            </Text>
        })
    }
})
const BaseNavigatorContainer = createAppContainer(
    createStackNavigator({
        'TABS': { screen: TabsNavigator }
    })
);

class BaseNavigator extends Component {
    render() {
        return (
            <BaseNavigatorContainer screenProps={{ BadgeCount: this.state.BadgeCount }} />
        )
    }
}

export { BaseNavigator };

我想将 this.state.BadgeCount 传递给 3

1 个答案:

答案 0 :(得分:0)

您只需将连接的组件作为图标传递,即可获得badgeCount

const TabsNavigator = createBottomTabNavigator({
    'Notification': {
        screen: Private,
        navigationOptions: () => ({
            tabBarIcon: ({ tintColor }) => (
                <TabBarIconWithBadge color={tintColor} />
            ),
        }),
    }
})

您的图标组件将如下所示:

const TabBarIconWithBadge = props => (
    <Icon color={props.color} />
    <Text style={...}>{props.badgeCount}</Text> 
);

const mapStateToProps = state => {
    return {
        badgeCount: state.notifications.badgeCount
    };
};

export default connect(mapStateToProps)(TabBarIconWithBadge);