Как программно вызвать submit redux формы с валидацией?

203
12 февраля 2018, 05:35

У меня есть обработчик по своей кнопке, в которой мне нужно получить значения формы, пройти их валидацию и если всё нормально отправить post запрос.

  onMyClick() {
    const {store} = this.context;
    const state = store.getState();
    let data = getFormValues('form-id')(state);  // получаем значения формы
    data.is_draft = true;
    let errors = validate(data);  //моя функция валидации
    this.handleFormSubmit(data);  // функция отправки данных на сервер
  }

Проблема в том, что если errors непустой, то надо как-то подсветить поля на форме. Это всё работает автоматически для кнопки типа , но как это сделать вручную? Какой метод redux формы нужно вызвать?

Answer 1

Для этого нужно использовать генератор действия submit

import { submit } from 'redux-form'
handleClick () {
  const { dispatch } = this.props
  dispatch(submit('remoteSubmit'))
}

Более подробный пример: https://redux-form.com/7.2.3/examples/remotesubmit/

READ ALSO
Почему redux сам не делает копию хранилища?

Почему redux сам не делает копию хранилища?

Рассмотрим стандартный редьюсер:

202
SpookyJS/CasperJS/NodeJs клик по ссылкам перебирая объект

SpookyJS/CasperJS/NodeJs клик по ссылкам перебирая объект

На одном из шагов spookyJS/casperJS формируется объект, содержащий текст ссылок

167