Pull to refresh

Comments 20

Может быть я что-то делаю не так, но я вообще не использую Redux для форм.

Формы — в 90% случаях обычные компоненты, которые не знают про окружение, т.к. оно им и не нужно. А значит, хватает обычного this.state.
Для зависимых форм данные либо подтягиваются снаружи, либо уж через connect() и props. Но Формы никогда не вызывают изменения Redux-store напрямую.
Это удобно и расширяемо. Все формы в одном месте, всегда есть доступ к ним извне, структурирование данных.
Удобно использовать на формах каталогов.
Ну тут считайте, что формы просто используют Redux как хранилище состояния, вместо хранения его в компонентах. Там отдельный редьюсер, и эта часть state ничего не знает про остальные. С этой частью стейта обычно не работают напрямую (однако иногда это бывает удобно, например, вручную залить серверной валидации ошибки в стейт в обход того, что предлагает redux-form).
UFO just landed and posted this here
UFO just landed and posted this here
Давай свое решение проще, которое позволит хорошо расширять логику, структурировать и доступатся к форме с других компонентов.
UFO just landed and posted this here
Во-первых редакс. Статья так называется потому, что это проще решение чем те, с которыми я встречался в flux архитектурах. А чего ты хотел, пишы html сайты, так проще всего. Во-вторых я вижу ты в оружии лучше разбираешься…
UFO just landed and posted this here
redux-form хорош.
можно настроить клиентскую валидацию, асинхронную серверную валидацию при изменении поля, при сабмите.
унифицированный формат вывода ошибок, валидация через промисы, да много чего еще…
в общем понравилось мне с ним работать
redux-form это чистой воды антипаттерн, из самостоятельных компонентов создается месиво из зависимостей, которое нигде нельзя использовать, кроме как данного случая, что сводит reusability к нулю, а именно reusability главная фитча реакта. такое ощущение, что ребята из авангарда ангуляра тащут в реакт свои костыли и подпорки
По вашей логике вся связка react + redux месиво из зависимосей.
А я считаю что переиспользовать в самый раз:
handleSubmit = (values) => {
        /* возвращаем промис
           erros в нашем случае это объект, в котором ключ - это название поля с ошибкой
           Например, {title: "Неверно введен заголовок"}*/
        return sleep(1000) {// симуляция ответа сервера}
          .then(({errors, ...data}) => {
             if (errors) {
                // бросаем экземпляр класса ошибки с текстами ошибок
                // _error общая ошибка для формы
                throw new SubmissionError({ ...errors, _error: 'Статья не добавлена!' })
             } else {
                // ошибок нет, обрабатываем данные data
            }
       })
    };
    render() {
        return (
            <div>
                {/* передаем обработчик*/}
                <Form onSubmit={this.handleSubmit} />
            </div>
        );
    }

Написал обработчик сабмита и подключил компонент. Чем вам не переиспользование?
Полнейший бред. Вы абсолютно не понимаете концепцию связки react-redux. И да у Вас это тоже месиво кода так как Вы не разделяете понятие component и container. Я на 100% уверен что в строке
// ошибок нет, обрабатываем данные data

Вы используете setState не ожидая что к этому моменту компонент может быть уже unmounted и если не вы то ваш коллега.
Я не считаю нужным обсуждать это дальше.
Ваша увереность это ваше личное дело. Предложите свое решение для удобства роботы с формами.

Это не уверенность, а опыт. И у моей команды нет проблем с формами при работе в связке React-Redux. И еще, API должно быть отдельным слоем, а не внутри формы и результатом API должен быть success или failed action

failed action как раз и создаётся при ловле SubmissionError, а success action реализуется
// ошибок нет, обрабатываем данные data

Работа с API в данной статье необсуждалась.
При чем тут ваша команда?

Не причем. Желаю Вам успехов в своем творчестве

А мне тоже понравился, только я использую material-версию (-:
Мне нравится: просто, удобно, красиво (-:
Sign up to leave a comment.

Articles