Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在Formik上实现自定义handleChange函数?_Reactjs_Formik - Fatal编程技术网

Reactjs 如何在Formik上实现自定义handleChange函数?

Reactjs 如何在Formik上实现自定义handleChange函数?,reactjs,formik,Reactjs,Formik,在输入元素中,handleChange函数将从onChange事件接收事件对象。如何为以下非输入字段创建自定义handleChange函数 import React from 'react'; import { useFormik } from "formik"; const SomeForm = () => { const { handleChange, handleSubmit, values } = useFormik({ initialValues

在输入元素中,handleChange函数将从onChange事件接收事件对象。如何为以下非输入字段创建自定义handleChange函数

import React from 'react';
import { useFormik } from "formik";

const SomeForm = () =>
{
  const { handleChange, handleSubmit, values } = useFormik({
    initialValues: {
      type: `company`, name: ``,
    },
    onSubmit: values => {
      console.log(JSON.stringify(values, null, 2));
    },
  });

  return (

    <div>

      <form onSubmit={ handleSubmit }>
        <label>Type</label>
        <ul>
          <li className={ values.type === `company` && `active` }
               onClick={() => handleChange(/* some custom handle change */)} >
              Company
          </li>

          <li className={ values.type === `individual` && `active` }
               onClick={() => handleChange(/* some custom handle change */)} >
              Individual
          </li>
        </ul>

        <label>Full Name</label>

        <input type="text"
               name="name" 
               value={ value.name }
               onChange={ handleChange } />
      </form>

    </div>

  )
};

export default SomeForm;
从“React”导入React;
从“formik”导入{useFormik};
常量SomeForm=()=>
{
const{handleChange,handleSubmit,values}=useFormik({
初始值:{
类型:`company`,名称:``,
},
onSubmit:values=>{
log(JSON.stringify(value,null,2));
},
});
返回(
类型
  • handleChange(/*一些自定义句柄更改*/)}> 单位
  • handleChange(/*一些自定义句柄更改*/)}> 个人
全名 ) }; 以某种形式导出默认值;
使用字段组件的渲染道具模式中提供的表单对象的setField('fieldName',value)方法。

我想这就是您所追求的。您可以在
字段.onChange(e)
之后添加自定义代码

//自定义字段
常量MyTextField=({label,…props})=>{
const[field,meta]=useField(props);
返回(
{
//原始处理程序
字段onChange(e)
//您的自定义代码
log('我可以在这里执行其他操作')
}}
className={meta.error&&'无效'}`}/>
{meta.toucted&&meta.error&&(
{meta.error}
)}
);
};
像这样使用它

<MyTextField name="entry" type="text" />


是否有这样做的示例?这看起来像什么?我很好奇如何定制
handleChange
<MyTextField name="entry" type="text" />