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

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

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

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

11 ответов

28 просмотров

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

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...

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

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

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

Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
Друзья, за кем?
Magic
12
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
А шо, ты этой библиотекой пользуешься?
Darkanronpa Dark Hole
10
Всем привет. Кто-то может подсказать, как можно перевести значения Selection поля, если список значений в нем формируется динамически? Я изначально их получаю из selection дру...
Наталья Селезнева
6
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Или даже по-другому вопрос выстрою Есть ли вообще в electron'e для винды, возможность кнопки действий в нотификацию впихнуть ?
Андрей
7
Карта сайта