Форма Redux, очистить и оставить для одного конкретного поля c, реагировать JS - PullRequest
0 голосов
/ 28 мая 2020

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

import React from 'react'
import { connect } from 'react-redux'
import { Field, reduxForm, formValueSelector } from 'redux-form'

let SelectingFormValuesForm = (props) => {
  const {
    favoriteColorValue, fullName, handleSubmit, hasEmailValue, pristine, reset, submitting
  } = props
  return (
    <form onSubmit={handleSubmit}>
      <div>
        <label>First Name</label>
        <div>
          <Field name="firstName" component="input" type="text" placeholder="First Name"/>
        </div>
      </div>
      <div>
        <label>Last Name</label>
        <div>
          <Field name="lastName" component="input" type="text" placeholder="Last Name"/>
        </div>
      </div>
      <div>
        <label htmlFor="hasEmail">Has Email?</label>
        <div>
          <Field name="hasEmail" id="hasEmail" component="input" type="checkbox"/>
        </div>
      </div>
      {hasEmailValue && <div>
        <label>Email</label>
        <div>
          <Field name="email" component="input" type="email" placeholder="Email"/>
        </div>
      </div>}
      <div>
        <label>Favorite Color</label>
        <div>
          <Field name="favoriteColor" component="select">
            <option></option>
            <option value="#ff0000">Red</option>
            <option value="#00ff00">Green</option>
            <option value="#0000ff">Blue</option>
          </Field>
        </div>
      </div>
      {favoriteColorValue && <div style={{
        height: 80,
        width: 200,
        margin: '10px auto',
        backgroundColor: favoriteColorValue
      }}/>}
      <div>
        <button type="submit" disabled={pristine || submitting}>Submit {fullName}</button>
        <button type="button" disabled={pristine || submitting} onClick={reset}>Clear Values
        </button>
      </div>
    </form>
  )
}

https://redux-form.com/6.0.2/examples/selectingformvalues/

1 Ответ

0 голосов
/ 02 июня 2020

Если вы используете refux-form версии 6.0.2, вы можете обновить ее до последней и использовать clearFields ( do c)

clearFields (form: String, keepTouched: boolean, persistentSubmitErrors: boolean, ... fields: String)

Очищает значения полей для всех переданных полей. Будет сброшено на initialValue для каждого поля, если оно есть.

Если параметр keepTouched имеет значение true, значения полей, затронутых в данный момент, будут сохранены.

Если параметр persistentSubmitErrors имеет значение true, значения полей текущих отправленных ошибок будут сохранены

dispatch(clearFields('FORM_NAME', false, false, 'favoriteColor'));
...