Как можно гибко расширять существующие компоуз компоненты? Например, есть TextField

c полем trailingIcon и чтоб каждый раз не писать одно и то же, хочется какой-то TextFieldWithClear, где trailinIcon всегда будет крестик. Очевидно, завернуть в свою комоуз функцию, но тогда нужно продублировать остальную дюжину полей TextField? Как-то много шума для такой ерунды, не?

14 ответов

11 просмотров

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

Kopusha- Автор вопроса
Roman Bocharov
ну если у тебя много где используется одинаковый т...

>отдельную функцию с текст филдом и крестиком не совсем понял. Эта функция все равно должна дублировать все поля текст филда, нет?

Если хочется оставить доступ ко всем функциям TextField то придётся добавить в свой враппер все эти параметры - по другому никак, это же функции а не классы и никакого наследования вам не завезли. Это не "поля" - это параметры. Ну или как @LicoriceWalrus предлагает - сделать слегка менее универсальный вариант TextField в котором что-то зашито а что-то передаётся параметром.

А в чём проблема дублирования полей?)

🚄 Bonк em Saudade
А в чём проблема дублирования полей?)

Да шумно становится :) я хочу только маааленьку пипку поменять а приходится повторять много чего. А ещё очень раздражает что приходится копировать default значения из функции которую вызываешь - ведь нельзя сказать что "я хз какое тут надо значение - используй свой default" в точке вызова.

Kopusha- Автор вопроса
🚄 Bonк em Saudade
А в чём проблема дублирования полей?)

ну, если б это был объект я бы мог написать однострочное расширение и получить что-то вроде TextField().withClear(). В Swift UI, вроде, можно. Во Flutter через наследование… Короче, все есть функция это чисто и прекрасно, но с объектами как-то больше практичных вариантов.

Kopusha
ну, если б это был объект я бы мог написать одност...

Я думаю это просто неудачный API... функциями тоже можно сделать нормально

Kopusha
ну, если б это был объект я бы мог написать одност...

Во что я придумал :) гист Такой вариант позволит привести маленькие расширения для TextField`а в сравнительно менее шумный вид

Kopusha
ну, если б это был объект я бы мог написать одност...

Наследование тут мало чем поможет, т.к. кастомизируемые аргументы передать в конструктор всё равно нужно. У флаттера это +\- исправилось только с недавним дартом 2.17, где ввели super параметры в конструкторах. Но я слабо представляю, как вы хотите и кастомизацию оставить, и передачу аргументов пропустить.

ну не дублируйте ¯\_(ツ)_/¯ Вам нужно будет либо давать, либо не давать сетить значения по умолчанию и все

Kopusha
ну, если б это был объект я бы мог написать одност...

так можно же не только функциями пользоваться в компоузе)

Kopusha- Автор вопроса

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

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

Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Устроился на новую работу тут везде отступы 2 пробела. На всех моих предыдущих проектах, везде было 4, все мои пэт проекты, либы и тд. Первые дни я прям взвыл, сейчас уже прив...
Сергей Романенко
7
Я тут пытаюсь переработать архитектуру подсистемы памяти ядра во что-то осмысленное. Есть pmm, который создает набор range’ей(пока что только для ядра, потом для юзерспейса), ...
Evg Resh
19
Товарищи, объясните недалекому: спустя какое-то время tgbot перестал отправлять сообщения. В логах пусто, просто уснул. Видел в issues на гите, что проблема не только у меня. ...
advanc3d
9
👋Bceм пpивeт 👋 3apaбoтoк на ТОN с koшeлькoм wallet внутpи тeлeгpaммa!! Cфepa нoвaя!! Дoxoднocть oт 30% в мecяц. Peзультaт ужe в пepвый дeнь!! Интepecнo? Пишите.
Владислав M
4
Кто-нибудь сталкивался с анализом текстов на ошибки и авто-подбором синонимов в тексте? Интересует: * или готовый софт который можно настроить под себя * или библиотеки для ...
Куся 🌿⃤ __UKS
5
Всем привет! Решил написать тесты на апи, однако, sendRequest ругается и плюется варнингами и просит асинхронный контекст внутри заполнения request. Немного не понимаю, как мн...
Misha Moshenski
1
Я пока не понял проблему и технические требования. Тебе нужен мегабайт физической нефрагментированной памяти но через виртуальный маппинг? Какой в этом смысл
ᛒ ᛖ ᚱ ᚲ ᚢ ᛊ ᛞ ᛖ ᚲ ᛖ ᚱ
7
То есть если оно есть, то дальше всем похуй, даже если я рядом ссылку на оплату ставлю?
■_|ilya|_■
3
Карта сайта