如何将{navigation}传递给整个routeConfig而不是仅传递给单个navigationOptions?

时间:2019-11-28 15:50:29

标签: reactjs react-native navigation react-navigation react-native-navigation

React Native,使用react-navigation,我可以像这样创建一个堆栈导航器:

const getModals = () => ({
 SomeScreen1: {
    screen: SomeScreen1,
    navigationOptions: ({ navigation }) => ({
      headerTitle: navigation.getParam('title1'),
    }),
  },
SomeScreen2: {
    screen: SomeScreen2,
    navigationOptions: ({ navigation }) => ({
      headerTitle: navigation.getParam('title2'),
    }),
  },
});

const ModalNavigator = createStackNavigator(
  getModals(),
  {
    mode: 'modal',
  },
);

这很好,但是我必须将{navigation}传递给每个navigationOptions。 如何只将它传递到所有屏幕一次,所以我不必继续破坏它?

(请注意,我的实际屏幕上除了这2个外还有更多的模式)

我尝试过这样的事情:


const getModals = ({navigation}) => ({
 SomeScreen1: {
    screen: SomeScreen1,
    navigationOptions: {
      headerTitle: navigation.getParam('title1'),
    },
  },
SomeScreen2: {
    screen: SomeScreen2,
    navigationOptions: {
      headerTitle: navigation.getParam('title2'),
    },
  },
});

const ModalNavigator = createStackNavigator(
  getModals,
  {
    mode: 'modal',
  },
);

但是我得到了:Invariant Violation: Please specify at least one route when configuring a navigator

0 个答案:

没有答案