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