@react_js

Страница 4176 из 5115
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
ну типа вот может что-то в таком духе
так в компонентах и нет логики, и она как раз таки разнесена, типа у тебя 2 функции, функция валидатор, и генератор-трансформатор

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

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
<Field> {(fields)=><input {…fields.field}/>} </Field>
плюс такой подход не оптимален, т.к. придётся ререндерить все поля внутри

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
да

ну ща проверю

чет

Страница 4176 из 5115