Реагировать на разные параметры маршрута на одном и том же маршруте - PullRequest
0 голосов
/ 19 июня 2019

В моем приложении есть маршрут, по которому можно перемещаться из двух разных мест.

В частности:

Главный экран (StackNavigation) -> целевой маршрут

Вкладка навигации -> целевой маршрут

Я заметил, что реагирующая навигация повторно использует один и тот же целевой компонент маршрута (не перемонтирует), независимо от того, каким путем также проходит целевой маршрут.

К сожалению, это означает, что параметры маршрута всегда совпадают с первым методом, используемым для навигации к целевому маршруту.

Я бы хотел сфокусировать окно поиска ввода, когда целевой маршрут перемещался с начального экрана, а не при навигации по вкладке.

Изначально я использовал этот код:

useEffect(() => {
    const _focusSearchBar = (payload) => {
        if (props.navigation.getParam('shouldFocus') && searchBar && searchBar.current) {
            searchBar.current.focus();
        }
    }
    let focusSub = props.navigation.addListener('didFocus', _focusSearchBar);
    _focusSearchBar();
    return () => focusSub.remove();
}, []);

Как мне этого добиться? Также целевой маршрут загружает данные, так что, вероятно, хорошо, что он не перемонтируется ...

По сути, мне нужен способ определения того, как проходил маршрут, через домашний экран или с помощью навигации по вкладкам.

Спасибо!

1 Ответ

0 голосов
/ 26 июня 2019

Чтение https://reactnavigation.org/docs/en/navigating.html#navigate-to-a-route-multiple-times

вам нужно использовать navigation.push() для запуска копий вашего компонента с разными параметрами.

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