Flutter Redux — обрабатывает навигацию по экрану в промежуточном программном обеспечении

#redux #flutter #flutter-redux

#сокращение #flutter #flutter-redux

Вопрос:

В моем приложении Flutter Redux у меня есть промежуточное программное обеспечение аутентификации, которое обрабатывает вызовы аутентификации пользователя во внешнюю службу аутентификации.

Если я хочу перенаправить на другой экран при определенных ответах (например, перейти на главный экран после успешного входа в систему) — рекомендуется ли обрабатывать это в промежуточном программном обеспечении или существуют другие оптимальные подходы?

Ответ №1:

Раньше я использовал redux в Интернете, и рекомендуется обрабатывать навигацию в промежуточном программном обеспечении, вы можете вызвать Navigator.of(context).pushNamed("youRoute") в своем промежуточном программном обеспечении или вы можете использовать NavigationMiddleware.

Комментарии:

1. Мне удалось использовать этот подход, но мне не нравится способ перехода страниц.

Ответ №2:

Обычно dispatch может запускать любое действие, которое включает пользовательский синтаксис, { api: } или { location: } . Но для того, чтобы redux понимал это иначе, чем { type: } , это могло бы быть лучше обработано redux промежуточным программным обеспечением. Например, https://github.com/reactjs/react-router-redux

Таким образом, мы можем выполнять dispatch(push('/foo')) где угодно, в том числе внутри любого действия thunk или любого другого действия.

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