Size: a a a

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

2020 October 19

О

Олег in React — русскоговорящее сообщество
Dmitry Balakov
1. У тебя по коду строка dispatch сработает только в том случае если password = repeatPassword - это лишний аргумента для action
2. Никак - поэтому и уточнил
не лишний. там идет проверка на бэкенде тоже
источник

DB

Dmitry Balakov in React — русскоговорящее сообщество
Олег
не лишний. там идет проверка на бэкенде тоже
тогда ок, но выглядит странно, обычно валидация repeatPassword чисто клиентская история (ну в моей практике)
источник

D

Danila in React — русскоговорящее сообщество
Олег
подскажите как можно это переписать красиво
Если это единичная форма, то ок. Если их парочка, есть смысл написать хелпер и описывать правила в отдельном объекте. Если их больше - то можно прибегнуть к готовым решениям, думаю.
источник

EM

Eugene Maltsev in React — русскоговорящее сообщество
Олег
подскажите как можно это переписать красиво
Взять форм-мененджер, react-final-form например 🤔
источник

b

blindlybright in React — русскоговорящее сообщество
Олег
хочу без зависимостей
как вариант:
let errorMessage = null;
let isValid = true;

// conditions
if (repeatPassword === '') { errorMessage = 'Enter password'; }
if (!errorMessage && repeatPassword !== password) { errorMessage = 'Passwords should be the same'; }
if (!errorMessage && ...) { errorMessage = '...'; }
// /conditions

if (!errorMessage) isValid = false;

if (!isValid) {
   alert.show(errorMessage, {timeout: 5000, type: 'error'})
}
else {
   dispatch(actionOnValidFormSubmitted(...));
}

но я бы для валидации отдельное что-то использовал (тот же formik с yup)
источник

DB

Dmitry Balakov in React — русскоговорящее сообщество
blindlybright
как вариант:
let errorMessage = null;
let isValid = true;

// conditions
if (repeatPassword === '') { errorMessage = 'Enter password'; }
if (!errorMessage && repeatPassword !== password) { errorMessage = 'Passwords should be the same'; }
if (!errorMessage && ...) { errorMessage = '...'; }
// /conditions

if (!errorMessage) isValid = false;

if (!isValid) {
   alert.show(errorMessage, {timeout: 5000, type: 'error'})
}
else {
   dispatch(actionOnValidFormSubmitted(...));
}

но я бы для валидации отдельное что-то использовал (тот же formik с yup)
как-то isValid выглядит лишним - нет?
источник

b

blindlybright in React — русскоговорящее сообщество
да, isValid здесь не нужен )
источник

b

blindlybright in React — русскоговорящее сообщество
let errorMessage = null;

// conditions
if (repeatPassword === '') { errorMessage = 'Enter password'; }
if (!errorMessage && repeatPassword !== password) { errorMessage = 'Passwords should be the same'; }
if (!errorMessage && ...) { errorMessage = '...'; }
// /conditions

if (!errorMessage) {
   alert.show(errorMessage, {timeout: 5000, type: 'error'})
}
else {
   dispatch(actionOnValidFormSubmitted(...));
}
источник

О

Олег in React — русскоговорящее сообщество
blindlybright
let errorMessage = null;

// conditions
if (repeatPassword === '') { errorMessage = 'Enter password'; }
if (!errorMessage && repeatPassword !== password) { errorMessage = 'Passwords should be the same'; }
if (!errorMessage && ...) { errorMessage = '...'; }
// /conditions

if (!errorMessage) {
   alert.show(errorMessage, {timeout: 5000, type: 'error'})
}
else {
   dispatch(actionOnValidFormSubmitted(...));
}
спс)
источник

b

blindlybright in React — русскоговорящее сообщество
urwelcome
источник

b

blindlybright in React — русскоговорящее сообщество
p.s.
conditions можно ещё переписать на массив <функция валидации, сообщение>[], и errorMessage получать через reduce массива, чтобы избавиться от списка многих условий
источник

A

Archakov 🌚 in React — русскоговорящее сообщество
Dragon3DGraff DGN
Нашёл разные примеры в интернете и из них слепил. Это было тестовое задание на позицию джуна
понял, интересное ТЗ
источник

DD

Dragon3DGraff DGN in React — русскоговорящее сообщество
Archakov 🌚
понял, интересное ТЗ
Пользуясь случаем благодарю за видео урок, он мне очень помог👍
источник

A

Archakov 🌚 in React — русскоговорящее сообщество
Dragon3DGraff DGN
Пользуясь случаем благодарю за видео урок, он мне очень помог👍
у тебя круче получилось, кстати)
источник

DD

Dragon3DGraff DGN in React — русскоговорящее сообщество
Archakov 🌚
у тебя круче получилось, кстати)
Работодатель разнёс его в пух и прах и на работу меня не взяли😁
источник

EB

Egor Burunkov in React — русскоговорящее сообщество
Тут замыкание работает ?
источник

D

Danila in React — русскоговорящее сообщество
Egor Burunkov
Тут замыкание работает ?
Замыкание чего?
источник

D

Danila in React — русскоговорящее сообщество
this не отвалится потому что onPlanetLoaded это стрелка
источник

EB

Egor Burunkov in React — русскоговорящее сообщество
Danila
this не отвалится потому что onPlanetLoaded это стрелка
а если updatePlanet тоже стрелкой сделать, в чем отличие от текущей ситуации будет ? Я, видимо, плохо понимаю работу стрелочных функция, т.к. думал, что доступ из updatePlanet к onPlanetLoaded доступен при условии, если updatePlanet является стрелочной функцией
источник

EB

Egor Burunkov in React — русскоговорящее сообщество
Danila
this не отвалится потому что onPlanetLoaded это стрелка
Ну или через замыкание функции (если функция не может внутри себя найти на что ссылается, то выходит за свои границы наверх)
Сорри, если бред несу
источник