Я использую react-bootstrap-validation, который украшает тег Input-bootstrap Input.
ValidatedInput требует, чтобы он находился внутри компонента Form. Когда я добавляю свой ValidatedInput к настраиваемому подкомпоненту, я получаю сообщение об ошибке, указывающее, что он должен находиться внутри Формы, какой он есть, но я думаю, что он теперь находится ниже дерева, поэтому не может видеть форму.
Есть ли способ ссылки на родительскую форму, чтобы ValidatedInput мог видеть родителя.
Глядя на источник библиотеки Validation, я вижу, что ValidationInput необходимо зарегистрировать в Форме, но я не уверен, как это сделать из подкомпонента.
// Parent render
render(){
<Form
className="fl-form fl-form-inline fl-form-large"
name="customer-details"
onValidSubmit={this._handleValidSubmit}
onInvalidSubmit={this._handleInvalidSubmit}
validationEvent='onChange'>
<TitleSelect handleChange={this.updateDropDown} value={this.state.form.title} />
</form>
}
// Sub class containing the ValidatedInput
export class TitleSelect extends React.Component {
static propTypes = {
handleChange: React.PropTypes.func.isRequired,
value: React.PropTypes.string.isRequired
}
render(){
return (
<ValidatedInput
name="title"
label='title'
type='select'
value={this.props.value}
onChange={this.props.handleChange}
groupClassName='form-group input-title'
wrapperClassName='fl-input-wrapper'
validate='required'
errorHelp={{
required: 'Please select a title.'
}}>
<option value="" ></option>
<option value="Mr">Mr</option>
<option value="Mrs">Mrs</option>
<option value="Master">Mstr.</option>
<option value="Ms">Ms</option>
<option value="Miss">Miss</option>
<option value="Reverend">Rev.</option>
<option value="Doctor">Dr.</option>
<option value="Professor">Prof.</option>
<option value="Lord">Lord</option>
<option value="Lady">Lady</option>
<option value="Sir">Sir</option>
<option value="Master">Mstr.</option>
<option value="Miss">Miss</option>
</ValidatedInput>
)
}
};