mobx?
Скажем, хочу полностью отделить всю логику от UI. И не хочется мне постоянно прокидывать context в экшены.
Хочется чтобы mobx решал когда юзеру двигаться вперед по экранам, а когда вылететь на авторизацию если сессия протухла.
PS: проект у меня использует обычный Navigator. Смотрю в сторону go_router
MobX навигацией не занимается, это UI часть.
Мне в этом утверждении не нравится одна вещь А именно — различные тосты, уведомления Без контекста их не вывести Если это не GetX, конечно Получается приходится как-то костылить возврат состояния из бизнес функции и производить действие в зависимости от этого возврата И чёт это немножко костыльно и громоздко ощущается
Через reaction в ондиддепенденси отлично тоастится все
Поясни, пожалуйста
Вообще, по правильному - выводить через reaction или ReactionBuilder в виджете
Можешь чуть подробнее объяснить? Я просто не очень помню, что именно так называется в мобиксе
https://stackoverflow.com/questions/56412277/how-to-pop-screen-using-mobx-in-flutter
Там дополнительную либу подключать надо для мобыкса, может поэтому не помнишь
Я просто вместо мобикса продолжаю юзать гет, а там это немножко по другому называется
Лучше уже коллбеки или then после экшена
Коллбэк, который вешается на любой обзервабл
Для reaction не надо. Это core.
То есть, в билде виджета мы регистрируем реакцию на изменение переменной с ошибкой, так? Просто выводим тост, если эта ошибка появилась, очищаем её, и ставим обработчик на следующую Так?
В инитстейте лучше
Да, мной примерно так и понято, просто не совсем дошла идея реализации через неё
Ну по ощущениям это даже хуже И писать больше, и логика будет разбросана по разным частям виджета
Да по-разному можно. Можно сделать @observable String error, повесить на него reaction в initState, и если строка пустая, то ничего, а если есть строка, то выводить тостик.
Ну по ощущениям реально проще делать var error = await func Так и реакций никаких не нужно регистрировать И вывод тоста будет в этой же самой функции, а не где-то в инит стейте
> И вывод тоста будет в этой же самой функции, а не где-то в инит стейте Каюсь, мы так делали ) времени не было. Но вообще расово верно все-таки через reaction в инитстейте, поскольку показ тоста, переход по навигатору — это всё UI слой, а не бизнесовый.
так я предлагаю в том же UI слое это и делать Просто в функции onPressed кнопки, а не выделенное отдельно в инит стейте
в onPressed выводить тосты?
Обсуждают сегодня