В сумке Formik предусмотрены обработчики событий, такие как handleBlur, handleChange, для обычных элементов формы мы можем назначить следующее:
<input name ="foo" onChange = {handleChange}/>
Если я присмотрюсь к этому событию onChange, как:
<input value = {values.foo} name="foo" onChange ={(e) => {
console.log(e);
handleChange(e); //Formik still handles it
}}/>
Мы можем видеть, что это React SyntheticEvent , который отправляется на formik.
Вопрос в том, что если я реализовал свой собственный компонент, произнесите что-то вроде:
const Randomer = (props) => {
const {onChange, name} = props;
const [value, setValue] = useState(Math.random() + "");
return <div>
{value}
<button onClick = {() => setValue(Math.random()+"")}> Click me</button>
</div>
}
И я хочу аналогичным образом позволить Formik быть в курсе изменений, которые вносит этот компонент,Как бы я изменил этот код, чтобы сделать это?
Код Песочница здесь.