Глобальный _navigation prop доступ - v1.x - PullRequest
0 голосов
/ 30 апреля 2018

Я использую реагирующую навигацию v1.x. Мне нравится иметь глобальный доступ к navigation опоре навигатора. Я надеюсь, что если я сделаю globalNavigation.addListener() или goBack и т. Д. Без аргументов, это будет так, как если бы я делал это с текущего экрана. Я также хочу передать ему некоторый аргумент, чтобы он выглядел так, как будто я назвал его неким «ключом». Я использую этот глобал из разных мест (например, промежуточное программное обеспечение и т.д.).

Было бы очень полезно также получить «getCurrentRouteName» и «getCurrentRouteKey». В предыдущей версии 1.x я делал нестандартные вещи в маршрутизаторах и надеялся избежать этого сейчас.

Я попытался создать ссылку на навигатор и использовать ref._navigation для таких вещей, как navigate, goBack и т. Д. Я хотел использовать его с addListener.

Вот как я получаю и удерживаю реф:

export AppNavigatorUtils = {}

class AppContent extends Component<Props> {
    constructor(props: Props) {
        super(props);

        AppNavigatorUtils.getNavigation = this.getNavigation;
    }

    render() {
        return (
            <AppNavigator ref={this.refNavigator} />
        )
    }

    refNavigator = el => this.navigator = el
    getNavigation = () => this.navigator ? this.navigator._navigation : null
}

Doing AppNavigatorUtils.getNavigation().addListener('didBlur, (e) => console.log('blur from e:', e)) не работает. Я ожидал, что это добавит слушателя к текущему экрану фокусировки.

У кого-нибудь есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...