React Native

FormikはReact NativeとReact Native Webと100%互換性があります。ただし、ReactDOMとReact Nativeのフォームとテキスト入力の処理方法の違いにより、いくつかの違いに注意する必要があります。このセクションでは、それらと、ベストプラクティスと考えるものについて説明します。

要点

さらに進む前に、React NativeでFormikを使用する方法の非常に最小限の要点を示し、主要な違いを示します。

// Formik x React Native example
import React from 'react';
import { Button, TextInput, View } from 'react-native';
import { Formik } from 'formik';
export const MyReactNativeForm = props => (
<Formik
initialValues={{ email: '' }}
onSubmit={values => console.log(values)}
>
{({ handleChange, handleBlur, handleSubmit, values }) => (
<View>
<TextInput
onChangeText={handleChange('email')}
onBlur={handleBlur('email')}
value={values.email}
/>
<Button onPress={handleSubmit} title="Submit" />
</View>
)}
</Formik>
);

上記のように、React DOMとReact NativeでFormikを使用する場合の顕著な違いは次のとおりです。

  1. FormikのhandleSubmitは、HTMLの<form onSubmit={...} />コンポーネントではなく、<Button onPress={...} />に渡されます(React Nativeには<form />要素がないため)。
  2. <TextInput />は、コールバックをプロパティに直接割り当てる代わりに、FormikのhandleChange(fieldName)handleBlur(fieldName)を使用します。これは、fieldNameをどこかから取得する必要があり、React NativeではWebのように(input name属性を使用して)自動的に取得できないためです。代わりにsetFieldValue(fieldName, value)setFieldTouched(fieldName, bool)を使用することもできます。
このページは役に立ちましたか?

ニュースレターを購読する

最新のFormikニュース、記事、リソースをメールで受信します。

Copyright © 2020 Formium, Inc. All rights reserved.