
Alex
13.06.2018
22:33:16
не понимаю, тогда и тег Form вынести?
или при чём тут реакт
а, или ты про то, что форма диктует как валидировать и как трансформировать данные?

Dmitry
13.06.2018
22:35:15
ну типа
const form = new Form<Model>()
form.transform(el=>el.tile, title=> title.toUppercCase());
<Form model={form} />

Google

Alex
13.06.2018
22:35:17
прост форму можно так же построить на 1 валидаторе с 1 тегом <Validation> который покроет всю форму и тоже с трансформами

Dmitry
13.06.2018
22:35:32
ну типа вот может что-то в таком духе
что бы разносить логику было проще

Alex
13.06.2018
22:36:26

Dmitry
13.06.2018
22:37:02
ну ладно
в принципе да

Alex
13.06.2018
22:37:47
просто ты их подключаешь не в <Form> а через два специальных тега, кстати, спасибо, натолкнул на мысль, я добавлю в форму пропы для пробрасывания валидатора и трансформатора
чтобы в простой форме можно было обойтись 1 тегом, а не тремя

Dmitry
13.06.2018
22:42:15
а кстать
а как ты апдейты трекаешь ?
когда какой-то филд или группа филдов поменялась ?

from
13.06.2018
22:43:51
слушайте ну вообще интересно https://www.youtube.com/watch?v=VU1NKX6Qkxc

Alex
13.06.2018
22:45:45

Google

Alex
13.06.2018
22:45:45
я писал в канале редакса про это немного, а так, я всегда знаю какое поле поменялось, а дальше нужно только найти подписчиков

Dmitry
13.06.2018
22:48:45
а
вообще бы было интересно это сделать с апи формика
когда у тебя в рендер колбеке есть доступ ко всему стейту
и мы берешь нужный
а потом филд автоматом трекает
то что ты взял

Alex
13.06.2018
22:50:02
а
сделал возможность прокинуть пропы валидатора и пропы трансформа сразу в форму типа:
<Form validator{myYup} transformer={myTransformer}>
тип теги валидатции и трансформера не нужны при этом

Valeriy
13.06.2018
22:51:42
блин где люди берт такие футболки??

Alex
13.06.2018
22:52:04
@zdmitr так лучше?

Dmitry
13.06.2018
22:59:16
кстати
а если апи сделать
вместо
f=>f.field
<Field>
{(fields)=><input {…fields.field}/>}
</Field>

Google

Alex
13.06.2018
23:01:02
я сделаю сабскрайбер, который будет иметь такой формат
Field немного больше чем просто селектор значения, он ещё контролит блур, селектит ошибки валидации и контроль за изменениями

Dmitry
13.06.2018
23:02:15
ну типа ты этои блюры можешь в филде и взять
просто через прокси их отдавать
когда значешь что юзают

Alex
13.06.2018
23:02:29

Dmitry
13.06.2018
23:02:37
рендерить ?

Andrew
13.06.2018
23:02:58
Посмотрите филды в final form

Alex
13.06.2018
23:03:38
типа, что мешает написать
<Field>
{(fields)=>(
<div>
<input {…fields.field}/>
<input {…fields.field2}/>
</div>
)}
</Field>

Dmitry
13.06.2018
23:04:31
окей
так у тебя ж там
прокси будет

Alex
13.06.2018
23:04:36
разве что вместе с пропами филда прокидывать ссылку
с одной стороны неплохо, с другой хз

Dmitry
13.06.2018
23:05:13
я думал про чет такое, но как-то не особо доходили руки
т.к с формаи не особо работаю
еще была идея
оптимайзить подписки
через биты контекстовые

Google

Alex
13.06.2018
23:05:39

Dmitry
13.06.2018
23:06:08
а ты каждому филду предварительно сетишь определенный бит

Alex
13.06.2018
23:06:43

Dmitry
13.06.2018
23:07:17
а как ты знаешь затронулось он оили нет ?
а
все вспомнил
а хотя не
если у тебя какой-то вложенный филд
есть

Admin
ERROR: S client not available

Dmitry
13.06.2018
23:08:37
и ты хочешь ток его
то черзе контекст ты сможешь без ререндера всей формы

Alex
13.06.2018
23:09:18
не сможешь, чтобы обновить контекст, ты должен перерендерить провайдер, а чтобы консумер получил значение ты должен перерендерить его
контекст работает на полном ререндере, макимум что он может - это отсечь ререндер одного или нескольких консумеров
тип он не forceUpdate, а blockUpdate

Dmitry
13.06.2018
23:10:22
у тебя 10 филдов
ты знаешь что поменялся один
ты отсекаешь 9 консумеров
и обновляешь один

Google

Alex
13.06.2018
23:10:48
я про то, что контексты новые из 16.3 реакта не так работают как ты хочешь

Dmitry
13.06.2018
23:11:04
всмысле
а как ?

Alex
13.06.2018
23:11:07
ну да, так и будет, но всё что до консумеров обновится

Dmitry
13.06.2018
23:11:15
ну да

Alex
13.06.2018
23:11:21
а не только тот консумер у которого положительная проверка по битам

Dmitry
13.06.2018
23:11:50
смотри
у меня есть 2 компонента
1 компонент форма
а второй компонент таблица с инпутами
таблица пьюр компонент
я меняю один филд
таблица не перередеривается т.к она не юзает все данные
а ререденится ток филд

Alex
13.06.2018
23:13:09
не перерендерится таблица, не обновятся консумеры
на эту тему есть issue blocked updates react router

Dmitry
13.06.2018
23:14:07
а это разве не трабла старого контекста 7

Alex
13.06.2018
23:14:38
и нового

Dmitry
13.06.2018
23:16:32
да
ну ща проверю
чет