React native 将道具传递到底层屏幕
我有以下嵌套结构:React native 将道具传递到底层屏幕,react-native,react-navigation,React Native,React Navigation,我有以下嵌套结构: - StackNavigator - TabBar - TabScreen1 - TabScreen2 - TabScreen3 - TabScreen4 - NormalScreen 主stacknavigator的调用方式如下: <Router notifications={6} /> const Router = StackNavigator({ MainTabBar: { screen: MainTabBar }
- StackNavigator
- TabBar
- TabScreen1
- TabScreen2
- TabScreen3
- TabScreen4
- NormalScreen
主stacknavigator的调用方式如下:
<Router notifications={6} />
const Router = StackNavigator({
MainTabBar: { screen: MainTabBar },
ChartDetailScreen: { screen: ChartDetailScreen },
}, {
headerMode: 'none',
initialRouteName: 'MainTabBar',
});
在其中一个选项卡屏幕中,我需要访问notifications属性,该属性被传递给stacknavigator
屏幕配置基本上如下所示:
Screen1: {
screen: Screen1,
navigationOptions: {
tabBarLabel: 'Screen1',
tabBarIcon: ({ tintColor }) => (
<Image ... />), <-- I need notifications here!
},
},
如何将外部stacknavigator的通知道具传递到此/所有屏幕?我尝试使用navigationOptions:screenProps=>{…}访问screenProps,但没有显示此属性
我使用React导航版本:1.0.0-beta.19。您应该将导航选项构建为一个函数:
navigationOptions: ({ screenProps }) => ({
tabBarIcon: ({ tintColor }) => (
<Image notifications={screenProps.notifications} />
),
...
});
这应该行。哦,是的。这是我的密码。现在修复-谢谢。顺便说一句,你能接受这个答案吗?
<Router screenProps={{ notifications: 6 }} />