useFormikContext()
は、React Context を介してすべてのFormikの状態とヘルパーを返すカスタムReactフックです。
Stripeの2段階認証フォームと同様に動作するフォームの例を次に示します。6桁の数字を入力するとすぐに、フォームは自動的に送信されます(つまり、Enterキーを押す必要はありません)。
import React from 'react';import { useFormikContext, Formik, Form, Field } from 'formik';const AutoSubmitToken = () => {// Grab values and submitForm from contextconst { values, submitForm } = useFormikContext();React.useEffect(() => {// Submit the form imperatively as an effect as soon as form values.token are 6 digits longif (values.token.length === 6) {submitForm();}}, [values, submitForm]);return null;};const TwoFactorVerificationForm = () => (<div><h1>2-step Verification</h1><p>Please enter the 6 digit code sent to your device</p><FormikinitialValues={{ token: '' }}validate={values => {const errors = {};if (values.token.length < 5) {errors.token = 'Invalid code. Too short.';}return errors;}}onSubmit={(values, actions) => {setTimeout(() => {alert(JSON.stringify(values, null, 2));actions.setSubmitting(false);}, 1000);}}><Form><Field name="token" type="tel" /><AutoSubmitToken /></Form></Formik></div>);
useFormikContext(): FormikProps<Values>
React Contextを介してFormikの状態とヘルパーを返すカスタムReactフック。したがって、このフックは、プルできる親Formik React Contextがある場合にのみ機能します。親コンテキスト(つまり、<Formik>
コンポーネントまたはwithFormik
高階コンポーネントの子孫)なしで呼び出された場合、コンソールに警告が表示されます。
最新のFormikのニュース、記事、リソースが受信トレイに送信されます。