【发布时间】:2020-11-10 15:43:43
【问题描述】:
我想利用 Formik 的内部状态处理(例如 initialValues 和通过字段名称引用验证)。但是,当我尝试使用自定义 onChange 处理程序时,我似乎必须手动管理选择标记的状态。有没有更好的方法来做到这一点?
state = {
selectedType: ''
};
handleForm = (val) => {
// do something else
this.setState({selectedType: val});
};
<Formik
initialValues={{
type: ''
}}
validate={
(values) => {
const errors = {};
if (!values.type) {
errors.type = "Select a value";
}
return errors;
}
}
onSubmit={
(values) => {
// getting undefined...
console.log(values.type);
}
}
>
<Form>
<Field name="type" as="select" value={this.state.selectedType} onChange={(event) => this.handleForm(event.target.value)}>
<option disabled></option>
<option value="Email">Email</option>
<option value="Text">Text</option>
<option value="Phone">Phone</option>
</Field>
<button type="submit">Submit</button>
</Form>
</Formik>
【问题讨论】:
标签: javascript reactjs forms formik