Pull to refresh

Comments 9

Спасибо за статью! Стоит отметить, что у go_router очень изменчивое api от версии к версии, которое пока что не стабилизировалось. Но пакет сильно значимый. Хочется верить, что получится учесть прошлый костыльный опыт по навигации и сделать favorite-пакет (я не про плашку в pub.dev)

Последние изменения версий практически не меняют АПИ, прошлось несколько приложений обновлять. Но в целом, да, до идеала еще есть что поделать)

Ну там различные params deprecated стали. Теперь через Uri. Не так давно вроде было.

StatefulShellRoute на самом деле кривоватый. Пример:

  • Есть экран "1" с TextField, на котором висит onTapOutside

  • Есть экран "2" в другой branch, на котором также находится TextField

  • Мы переходим с экрана 1 на экран 2 через context.go() (т.е. в backstack экрана 1 нет)

  • Нажатия по экрану 2 вызывают onTapOutside с экрана 1

Вопрос: А как так? StatefulShellBranch просто держит состояние активным?

Из-за данной проблемы вернулся на обычный ShellRoute.

Идея StatefulShellRoute хорошая, но его допиливать надо. А если я хочу, чтобы не все экраны были в StatefulShellBranch. Иногда хочется что-то вроде StatelessShellBranch.

Вообще, goRouter - очень крутая либа с классными фичами (refreshListanable, redirect и т.д.), всегда с её помощью навигацию строю. Но StatefullShellRoute, вышедший несколько месяцев назад, ещё сырой. Я бы рекомендовал воздержаться от его использования в больших проектах, мало ли что.

Хорошее замечание, мне такой кейс не встречался
А можете по подробнее расписать, для какой логики вы используете onTapOutside?

TextField находится в DraggableScrollableSheet, и нужно вызывать unfocus() в onTapOutside, чтобы при взаимодействии с DraggableScrollableSheet клавиатура убиралась.

А когда я использовал StatefullShellRoute, при нажатии на TextField (и всё остальное) на экране 2 сразу происходил unfocus :-)

Добавил debugPrint() в onTapOutside и увидел, что в он вызывается, хотя экран даже не в backstack.

Как-то так.

После того как намучился с пакетами навигации (go router, routemaster, auto route), написал свой пакет. Пару недель на разработку зато все мои юз кейсы, которые неработали в других пакетах + стандартные кейсы работают как надо и покрыты тестами. Уж лучше так чем годами ковырятся с багами из за навигации кривой.

а у нас был обратный путь )

когда мы поняли, что собственный пакет нас ведет к го_рутеру вид сбоку, то решили дальше не мучаться )

Sign up to leave a comment.

Articles