169 похожих чатов

Здрасть народ! Вопрос такой. Почему компоуз ушел от концепции, чтобы

функция что-то возвращала. Все через колбэки. Например, у меня дейтпикер (кастомный, т.к. на десктоп материал еще не завезли). Что плохого в том, что компоузебл функция дейтпикера будет возвращать локалдейт и класть его в стейт того компоузебла, который этот дейтпикер вызывал?

@Composable
fun DatePicker(date: (LocalDate) -> Unit) { TODO }
vs
@Composable
fun DatePicker() : LocalDate

11 ответов

47 просмотров

потому что компоуз функции - это вьюшки, зачем им данные возвращать?

Din-R-Islamov Автор вопроса
Gleb Mikhailov
потому что компоуз функции - это вьюшки, зачем им ...

не аргумент. Я в свою очередь заявляю, что компоузебл — это функция. И она возвращает юнит. Почему бы ей не вернуть что-то другое кроме юнит?

Din-R-Islamov Автор вопроса

а какой из этих двух вариантов по твоему легче читается?? var date by remember { mutableStateOf(LocalDate.now() } /* */ date = DatePicker() или var date by remember { mutableStateOf(LocalDate.now() } /* */ DatePicker() { date = it } Вопрос удобства сопсна

Din-R Islamov
а какой из этих двух вариантов по твоему легче чит...

если бы у бабки был член она была бы дедом

Din-R Islamov
а какой из этих двух вариантов по твоему легче чит...

Колбек будет вызван при событии колбека, а компоузабл функция может быть вызвана при каждой рекомпозиции

Din-R Islamov
а какой из этих двух вариантов по твоему легче чит...

В первом случае и внутри пикера будет ещё один remember date, чтобы при первом вызове не блокировать UI, или без remember, но тогда нужно будет ждать выполнение пикера и никакой другой код ниже пикера не будет вызван до какого-то времени?

Din-R-Islamov Автор вопроса

Спасибо за внятный аргумент ) Просто в данном случае дейт пикер это диалог. То есть какой нибудь флоу может вызывать рекомпозицию "за спиной" диалога, и могут быть непредвиденные кейсы. Я верно понял?

Din-R-Islamov Автор вопроса
Maksim P.
В первом случае и внутри пикера будет ещё один rem...

По идее если открыт диалог с пикером, то ничего не должно происходить за ним. После того, как закрыл — пожалуйста

Din-R Islamov
Спасибо за внятный аргумент ) Просто в данном случ...

https://habr.com/ru/amp/publications/739510/ https://habr.com/ru/companies/kts/articles/595465/ Немного о том, как происходят композиции и рекомпозиции, полезно для понимания, чё там происходит в этом компоузе

Din-R-Islamov Автор вопроса
Valerii Makarov
https://habr.com/ru/amp/publications/739510/ https...

Оооо, то что надо! Благодарю!

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта