Я прочитал здесь , что использование createStackNavigator в качестве класса Component было возможно, и я пытался добиться этого, но всегда получал ошибку.
Вместоэто:
export default createStackNavigator({
Messages
}, {
defaultNavigationOptions: {
gesturesEnabled: false
}
})
Я пробовал это:
class MessagesStack extends React.Component {
render() {
const RouteConfigs = {
Messages
};
const NavigatorConfigs = {
defaultNavigationOptions: {
gesturesEnabled: false
}
};
const Stack = createStackNavigator(RouteConfigs, NavigatorConfigs);
return <Stack />;
}
}
export default MessagesStack;
Но я всегда получаю эту ошибку:
Invariant Violation: Invariant Violation: The navigation prop is missing for this navigator. In react-navigation 3 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html
ТакЯ попытался исправить это, добавив навигационную опору, вот так:
return <Stack navigation={this.props.navigation} />;
Но потом я получил новую ошибку
TypeError: TypeError: No "routes" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop
Возможно ли это?Основная причина, по которой я хочу это сделать, - это возможность @inject и использовать @observer для магазинов mobx.Таким образом, когда я меняю цвет фона в магазине, он будет меняться в каждой стопке, в которую магазин вставил и наблюдает.
РЕДАКТИРОВАТЬ
Где я нахожусьвызывая MessagesStack от:
export default createBottomTabNavigator({
DayStack: {
screen: DayStack,
navigationOptions: {...}
}
MessagesStack: {
screen: MessagesStack,
navigationOptions: {...}
}
... OtherStacks here...
}, {
initialRouteName: 'DayStack',
});