title: React Formik : how to use custom onChange and onBlur
body: <p>I'm starting out with the <a href="https://github.com/jaredpalmer/formik" rel="noreferrer">formik</a> library for react, and I can't figure out the usage of the props handleChange and handleBlur.</p>
  
  <p>According to <a href="https://github.com/jaredpalmer/formik#handleblur-e-any--void" rel="noreferrer">the docs</a>, handleBlur can be set as a prop on a <code>&lt;Formik/&gt;</code>, and then has to be passed manually down to the <code>&lt;input/&gt;</code>. </p>
  
  <p>I've tried that, with no success :
  (I'm keeping the code about handleBlur for more clarity)</p>
  
  <pre><code>import React from "react";
  import { Formik, Field, Form } from "formik";
  import { indexBy, map, compose } from "ramda";
  import { withReducer } from "recompose";
  
  const MyInput = ({ field, form, handleBlur, ...rest }) =&gt;
    &lt;div&gt;
      &lt;input {...field} onBlur={handleBlur} {...rest} /&gt;
      {form.errors[field.name] &amp;&amp;
        form.touched[field.name] &amp;&amp;
        &lt;div&gt;
          {form.errors[field.name]}
        &lt;/div&gt;}
    &lt;/div&gt;;
  
  const indexById = indexBy(o =&gt; o.id);
  const mapToEmpty = map(() =&gt; "");
  
  const EmailsForm = ({ fieldsList }) =&gt;
    &lt;Formik
      initialValues={compose(mapToEmpty, indexById)(fieldsList)}
      validate={values =&gt; {
        // console.log("validate", { values });
        const errors = { values };
        return errors;
      }}
      onSubmit={values =&gt; {
        console.log("onSubmit", { values });
      }}
      handleBlur={e =&gt; console.log("bluuuuurr", { e })}
      render={({ isSubmitting, handleBlur }) =&gt;
        &lt;Form&gt;
          &lt;Field
            component={MyInput}
            name="email"
            type="email"
            handleBlur={handleBlur}
          /&gt;
          &lt;button type="submit" disabled={isSubmitting}&gt;
            Submit
          &lt;/button&gt;
        &lt;/Form&gt;}
    /&gt;;
  </code></pre>
  
  <p>What is wrong with this approach ?
  How are handleBlur and handleChange actually supposed to be used ?</p>