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 }} />