Javascript React-Formik:如何在不手动处理状态的情况下使用自定义onChange?
我想利用Formik的内部状态处理(例如,Javascript React-Formik:如何在不手动处理状态的情况下使用自定义onChange?,javascript,reactjs,forms,formik,Javascript,Reactjs,Forms,Formik,我想利用Formik的内部状态处理(例如,初始值和通过字段名引用验证)。然而,当我尝试使用自定义onChange处理程序时,我似乎必须手动管理select标记的状态。有更好的方法吗 state = { selectedType: '' }; handleForm = (val) => { // do something else this.setState({selectedType: val}); }; <Formik initialValue
初始值
和通过字段名引用验证)。然而,当我尝试使用自定义onChange
处理程序时,我似乎必须手动管理select标记的状态。有更好的方法吗
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>
状态={
所选类型:“”
};
handleForm=(val)=>{
//做点别的
this.setState({selectedType:val});
};
{
常量错误={};
如果(!values.type){
errors.type=“选择一个值”;
}
返回错误;
}
}
提交={
(值)=>{
//正在得到未定义的。。。
console.log(values.type);
}
}
>
this.handleForm(event.target.value)}>
电子邮件
正文
电话
提交
当使用Formik管理表单时,我们应该避免使用状态来管理表单状态。默认情况下,Formik提供帮助程序来处理onChange、focus和blur事件
Formik提供的字段将为您处理更改事件
<Field id="type" name="type" as="select">
<option disabled></option>
<option value="Email">Email</option>
<option value="Text">Text</option>
<option value="Phone">Phone</option>
</Field>
电子邮件
正文
电话
希望这有帮助-您能提供更多关于如何使用自定义处理程序的详细信息吗?你能指出显示如何使用自定义处理程序的帮助程序的Formik文档吗?已经添加了一个沙盒链接,希望有帮助。也许你忘记保存了?沙盒示例没有任何相关代码。啊!!忘记保存-。