Size: a a a

React — русскоговорящее сообщество

2020 October 27

OF

Oleg Frolov in React — русскоговорящее сообщество
а хранить кастомную форму по каждому полю в своём сторе, это как изобретать велосипед, потому что имеющиеся в наличии в магазине не подходят по цвету. Слишком много проблем с экшенами, валидациями, условиями всякими.. Вряд ли финансово оправдан такой подход. Хотя, и такое тоже доводилось делась.. всё зависит от задачи конечно же.
источник

V

Vetro in React — русскоговорящее сообщество
x1dan
Привет, подскажите плиз компонент или структуру, для создания больших форм, в несколько этапов и т.д ( 40+ полей )
react hook form хорош
источник

OF

Oleg Frolov in React — русскоговорящее сообщество
Bugs Bunny
у него один onChange будет триггерить ререндер 40 инпутов
так и если сделать кастомный объект - результат будет тот же. Поэтому берём формик и каждый элемент формы = свой компонент, который получает value пропсом. И никаких ре-рендеров без необходимости
источник

BB

Bugs Bunny in React — русскоговорящее сообщество
Oleg Frolov
так и если сделать кастомный объект - результат будет тот же. Поэтому берём формик и каждый элемент формы = свой компонент, который получает value пропсом. И никаких ре-рендеров без необходимости
нет. точечной подпиской можно этого избежать
источник

BB

Bugs Bunny in React — русскоговорящее сообщество
я не говорю уже о том, что формик использует собственные инпуты под капотом, с которыми тоже не все так просто
источник

OF

Oleg Frolov in React — русскоговорящее сообщество
бред какой-то)
источник

d

dron in React — русскоговорящее сообщество
Внесу свои 5 копеек. Пользуюсь react-hook-form + yup для валидации. Проект с кучей форм, которые по факту представляют бумажные доки (порядка 500-600 документов). либа позволяет внутри формы делать динамические поля + в динамическом поле могут быть другие динамические поля. лишних рендеров нет, много удобных фич
источник

x

x1dan in React — русскоговорящее сообщество
Oleg Frolov
так и если сделать кастомный объект - результат будет тот же. Поэтому берём формик и каждый элемент формы = свой компонент, который получает value пропсом. И никаких ре-рендеров без необходимости
может есть бест практики посмотреть на такие реализации?
источник

OF

Oleg Frolov in React — русскоговорящее сообщество
Bugs Bunny
я не говорю уже о том, что формик использует собственные инпуты под капотом, с которыми тоже не все так просто
всмысле собственные инпуты?) берёшь от формика только работу со значениями и дальше с песней юзаешь свои компоненты как угодно. Например:

<Formik
         initialValues={initialValues}
         onSubmit={doSubmit}
         validate={values => doValidate(values, type)}
       >
         {({
           values,
           handleSubmit,
           isSubmitting,
           handleChange,
           setFieldValue,
           errors,
           submitCount
         }) => {
           return (
             <form onSubmit={handleSubmit}>
...
источник

EB

Eddie Bbb in React — русскоговорящее сообщество
есть какой-то плагин на реакте, когда например,
забыл переключить раскладку клавиатуры, и оно тебе перевело слово?
источник

BB

Bugs Bunny in React — русскоговорящее сообщество
Oleg Frolov
всмысле собственные инпуты?) берёшь от формика только работу со значениями и дальше с песней юзаешь свои компоненты как угодно. Например:

<Formik
         initialValues={initialValues}
         onSubmit={doSubmit}
         validate={values => doValidate(values, type)}
       >
         {({
           values,
           handleSubmit,
           isSubmitting,
           handleChange,
           setFieldValue,
           errors,
           submitCount
         }) => {
           return (
             <form onSubmit={handleSubmit}>
...
ну и как долбанет тебе ререндер на всю форму
источник

Q

Qop in React — русскоговорящее сообщество
а use hook form лучше formik?
источник

BB

Bugs Bunny in React — русскоговорящее сообщество
не видишь, что у тебя рендер-проп?
источник

OF

Oleg Frolov in React — русскоговорящее сообщество
Bugs Bunny
ну и как долбанет тебе ререндер на всю форму
дальше каждый элемент поля рендеришь как отдельный компонент и даёшь ему значение
<YourCoolInput value={values.email} onChange={onChange} />
источник

OF

Oleg Frolov in React — русскоговорящее сообщество
и ничего не перерендеривается. Инфа сотка :)
источник

BB

Bugs Bunny in React — русскоговорящее сообщество
onChange выше стоит?
источник

BB

Bugs Bunny in React — русскоговорящее сообщество
прикольно так держать 40 хэндеров в одном компоненте, наверное
источник

OF

Oleg Frolov in React — русскоговорящее сообщество
поправил кусок выше для наглядности. Прокидывай ф-цию как пропс. Она же ф-ция, че б нет
источник

OF

Oleg Frolov in React — русскоговорящее сообщество
почему 40 в одном?) один хендлер одного формика. Который принимает name поля и value текущего значения.
источник

BB

Bugs Bunny in React — русскоговорящее сообщество
а если там где-то массив? где-то дропзона или секция чекбоксов?
источник