Size: a a a

JavaScript.Ninja

2020 June 22

V

Valentin in JavaScript.Ninja
Timofey Goncharov
хм ну логично. но в тоже время если есть is-dirty, то его отсутсвие это и есть is-pristine
ты читаешь код, он для тебя всегда новый, ты не знаешь контекста, что при таких то условиях, что-то иначе
источник

TG

Timofey Goncharov in JavaScript.Ninja
Valentin
ты читаешь код, он для тебя всегда новый, ты не знаешь контекста, что при таких то условиях, что-то иначе
ну спорно. я могу прочитать и подумать "is-pristine" "is-dirty", а что тогда если не то не другое)))
источник

V

Valentin in JavaScript.Ninja
Timofey Goncharov
ну спорно. я могу прочитать и подумать "is-pristine" "is-dirty", а что тогда если не то не другое)))
тебе нечем заняться? дебаж >.<
источник

IK

Illya Klymov in JavaScript.Ninja
Есть вещи которые "так принято"
источник

TG

Timofey Goncharov in JavaScript.Ninja
Illya Klymov
Есть вещи которые "так принято"
(дока react-redux-form)
ну не совсем же то о чем мы говорили. тут же не говориться что оно обнуляется после submit
источник

IK

Illya Klymov in JavaScript.Ninja
обычно после успешного сабмита отправленные данные становятся новым начальным состоянием
источник

V

Valentin in JavaScript.Ninja
Timofey Goncharov
(дока react-redux-form)
ну не совсем же то о чем мы говорили. тут же не говориться что оно обнуляется после submit
етп, это же редакс! ты тролишь?
источник

IK

Illya Klymov in JavaScript.Ninja
но да, по умолчанию вы правы
источник

IK

Illya Klymov in JavaScript.Ninja
не сбрасывается
источник

TG

Timofey Goncharov in JavaScript.Ninja
мне нужен флаг не о том, что поле было изменено.
мне нужен флаг о том, что поле было изменено после получения асинхронной ошибки.

то есть после submit, ну или не факт что после submit.
источник

V

Valentin in JavaScript.Ninja
Timofey Goncharov
мне нужен флаг не о том, что поле было изменено.
мне нужен флаг о том, что поле было изменено после получения асинхронной ошибки.

то есть после submit, ну или не факт что после submit.
а это архитектурно правильно?
источник

DP

Dmytro Petunenko in JavaScript.Ninja
Значит нужен новый стейт )
источник

V

Valentin in JavaScript.Ninja
Dmytro Petunenko
Значит нужен новый стейт )
Просто данные лучше вправляют ui, чем какие то между операционные состояния.
источник

DP

Dmytro Petunenko in JavaScript.Ninja
Да, но это реальный юз кейс.
Я бы наверное помечал поле после старта асинк чека и от этого уже решал что делать после его завершения
источник

TG

Timofey Goncharov in JavaScript.Ninja
описываю кейс:
есть синхронная валидация: изменили поле, получили undefined или Error.
есть асинхронная валидация: изменили поле, получили undefined от syncValidate, но позже получили ошибку от asyncValidate (нужно показать ошибку).

возникает проблема: асинхронная ошибка получена и отображена, НО после того как мы изменяем другие поля, срабатывает синхронная валидация которая не находит ошибки и затерает async ошибку.

вижу такое решение:
есть 2 стейта, syncErrors и asyncErrors.
в итоге отображаем: syncError || asyncError.
но после изменения поля, нам нужно скрыть ошибку из asyncError для текущего поля. вот и вопрос, как назвать этот флаг, означающий что поле было изменено после получения async ошибки.
источник

IK

Illya Klymov in JavaScript.Ninja
выкинуть синхронную валидацию
источник

IK

Illya Klymov in JavaScript.Ninja
сделать асинхронные )
источник

TG

Timofey Goncharov in JavaScript.Ninja
Illya Klymov
выкинуть синхронную валидацию
ну по условию задачи нужна и та и другая)

юзернейм минимуму 5 символов, но вот асинхронно проверим занят ли он.
источник

IK

Illya Klymov in JavaScript.Ninja
выразите синхронную валидацию как асинхронную через Promise.race
источник

DP

Dmytro Petunenko in JavaScript.Ninja
Illya Klymov
выразите синхронную валидацию как асинхронную через Promise.race
👍
источник