useFormik()

useFormik() 是一個自定義的 React hook,它會直接返回所有 Formik 狀態和輔助函式。 儘管它的名稱如此,但它並不適用於大多數的使用案例。 在內部,Formik 使用 useFormik 來創建 <Formik> 組件(它會渲染一個 React Context 提供者)。 如果您嘗試透過 context 訪問 Formik 狀態,請使用 useFormikContext。 只有在您 *沒有* 使用 <Formik>withFormik 時才使用此 hook。

**請注意,<Field><FastField><ErrorMessage>connect()<FieldArray> *不會* 與 useFormik() 一起使用,因為它們都需要 React Context。

useFormik() 的使用案例

  • 你是 Jared

    (This likely refers to a specific inside joke or context. Consider replacing with a more general example if this document is for a broader audience. For example: "您需要客製化表單行為")
  • 您正在修改返回值並創建一個修改版本的 <Formik> 供自己使用
  • 您想要避免使用 React Context(可能是出於效能考量)

範例

import React from 'react';
import { useFormik } from 'formik';
const SignupForm = () => {
const formik = useFormik({
initialValues: {
firstName: '',
lastName: '',
email: '',
},
onSubmit: values => {
alert(JSON.stringify(values, null, 2));
},
});
return (
<form onSubmit={formik.handleSubmit}>
<label htmlFor="firstName">First Name</label>
<input
id="firstName"
name="firstName"
type="text"
onChange={formik.handleChange}
value={formik.values.firstName}
/>
<label htmlFor="lastName">Last Name</label>
<input
id="lastName"
name="lastName"
type="text"
onChange={formik.handleChange}
value={formik.values.lastName}
/>
<label htmlFor="email">Email Address</label>
<input
id="email"
name="email"
type="email"
onChange={formik.handleChange}
value={formik.values.email}
/>
<button type="submit">Submit</button>
</form>
);
};

參考

useFormik<Values>(config: FormikConfig<Values>): FormikProps<Values>

一個自定義的 React Hook,它會返回 Formik 狀態和輔助函式。 它在內部用於創建 <Formik> 組件,但為了進階使用案例或不想使用 React Context 的使用者而匯出。

這個頁面有幫助嗎?

訂閱我們的電子報

最新的 Formik 新聞、文章和資源,將會發送到您的收件箱。

版權所有 © 2020 Formium, Inc. 保留所有權利。