reactjs - 如何处理 Formik 的 `handleChange` Prop ?

标签 reactjs formik

我明白了 Field有一个 onChange您可以在其中传递自己的 Formik 的属性 onChange来自这里的 Prop :https://jaredpalmer.com/formik/docs/api/formik#handlechange-e-reactchangeevent-any-void .

但是,我很难理解这些 value[key] 在哪里是通过的,所以我可以处理表单中传递的数据。发现于 withFormik(): How to use handleChange我可以将两个回调传递给 Formik 的 onChange Prop ,但我想知道是否有更好的方法来处理这个问题。

在回复的人发表评论后进行编辑,谢谢:

我的代码在 Field 的 onChange Prop 中使用了这两个回调:

export default function FormikForm() {
  const onSubmitHandler = (formValues, actions) => {
    console.log(formValues);
    console.log(actions);
  };

  const onChangeHandler = (e) => {
    console.log(e.target.value);
  };

  return (
    <div>
      <h1>This is the Formik Form</h1>
      <Formik
        initialValues={{
          name: "",
          email: "",
          age: ""
        }}
        onSubmit={onSubmitHandler}
        render={props => {
          return (
            <Form>
              <label>
                Name
                <Field
                  name="name"
                  type="text"
                  placeholder="name"
                  onChange={e => {props.handleChange(e); onChangeHandler(e)}}
                />
              </label>
              <button type="submit">Submit</button>
            </Form>
          );
        }}
      />
    </div>
  );
}

有没有办法做与 onSubmitHandler 类似的事情,其中 Formik 自动输出输入的值,而无需在 onChange 中调用这两个函数?

谢谢

最佳答案

每个字段组件都会收到一个 field prop其中有一个 value prop 包含该字段的值,以及 form prop 包含可用于设置值的辅助方法。我需要查看您的代码结构以提供有关如何实现所需内容的具体建议,但您可以通过调用 form.setFieldValue(field.name, field.value) 来模拟默认功能。 .此外,field prop 在 field.onChange 中默认内置了这个处理程序支柱。

关于reactjs - 如何处理 Formik 的 `handleChange` Prop ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58120035/

相关文章:

reactjs - 使用 Yup 和 Formik 自动修剪空白

reactjs - 基于另一个字段的值所需的字段 - formik,是的

reactjs - yup.number().typeError() 不检查点(.)以外的字符

javascript - 为什么我当前在 reactjs 中的项目在 package.json 脚本中包含这个 "theme": "lessc --js src/App.less src/App.css",?

javascript - 当存在于组件的 enzyme 渲染中时,“在 react 元素的 Prop 中找不到流动属性”

reactjs - 使用 JWT 实现 Azure AD React 和 Spring 安全

reactjs - 如何使用 Formik 应用突变?

material-ui - 与 Formik 一起使用时如何在 Material UI 中禁用文本字段

javascript - 回调不是函数错误

reactjs - 在 react 钩子(Hook)中将数组添加到数组状态给出一个数字