Используйте примитивные формы <Field>, но сохраняйте старый стиль - PullRequest
0 голосов
/ 20 марта 2019

У меня есть трехстраничная форма, которую мне нужно использовать в форме избыточности для отправки данных формы с трех страниц в хранилище избыточности. Однако это работает только при использовании тега <Field>. Что сделано так:

<Field
        name="siteName"
        type="text"
        component={renderField}
        label="Site Name"
      />

с компонентом renderField, выглядящим так:

const renderField = ({ input, name, type, meta: { touched, error } }) => (
  <div>
    <label>{name}</label>
    <div>
      <input {...input} placeholder={name} type={type} />
      {touched && error && <span>{error}</span>}
    </div>
  </div>
)

export default renderField

Однако на данный момент я использую реагирующий-начальный загрузчик / реактивный ремешок, чтобы стилизовать мои формы и создать макет, и он должен храниться именно так. Всякий раз, когда я пытаюсь объединить оба, стиль просто полностью меняется Вот фрагмент кода моей формы, как сейчас:

<FormGroup row>
                    <Col sm={6}>
                        <Input label="sitName" component={renderField} type="text" name="siteName" id="siteName" placeholder={placeholders.siteName}/>
                    </Col>
                    <Col sm={6}>
                        <Input className="form-control" type="select" id="counties">
                            <option className="selectDefault" disabled value={placeholders.siteCounties} selected>{placeholders.siteCounty}</option>
                            { counties.map(c => (<option key={c.value} value={c.value}>{c.display}</option>))}
                        </Input>
                    </Col>
                </FormGroup>
                <FormGroup row>
                    <Col sm={12}>
                        <Input type="textarea"  name="siteAddress" placeholder={placeholders.siteAdd} id="siteAddress" />
                    </Col>
                </FormGroup>
                <FormGroup row>
                    <Col sm={6}>
                        <Input type="email" name="siteEmail" id="siteEmail" placeholder={placeholders.email} />
                    </Col> 
                    <Col sm={6}>
                        <Input type="tel" name="siteNumber"  id="siteNumber" placeholder={placeholders.number}/>
                    </Col>
                </FormGroup>
...