Моя цель - использовать пользовательский компонент на основе Switch
(из React Native) в форме Formik.Вот код компонента формы:
class NewPreferences extends React.Component {
render() {
return(
<View style={styles.mainContainer}>
<View style={styles.newPreferencesContainer}>
<Formik
initialValues={{
food: true
}}
onSubmit={async (values, action) => {
await this.props.onSubmitPress(values)
action.setSubmitting(false)
}}
render={({
values,
errors,
touched,
handleChange,
handleBlur,
handleSubmit,
isSubmitting,
}) => (
<View style={styles.formikNewPreferences}>
<View style={styles.itemRow}>
<Field
source={images.food.uri}
onChange={handleChange('food')}
value={values.food}
name="food"
component={ToggleButton}
/>
</View>
<TouchableOpacity
style={styles.button}
onPress={handleSubmit}
disabled={isSubmitting}
>
<Text>Login</Text>
</TouchableOpacity>
</View>
)}
/>
</View>
</View>
);
}
Компонент ToggleButton
следующий:
class ToggleButton extends React.Component<ToggleButtonInterface> {
render() {
return(
<View>
<Image
source={this.props.source}
/>
<Switch
onValueChange={this.props.onChange}
value={this.props.value}
/>
</View>
);
}
}
Похоже, что переключение Switchэлемент вызывает ошибку: undefined is not an object (evaluating '_a.type')
, в методе _handleChange
из Switch
.Следуя документации Formik, я подумал, что мне просто нужно передать handleChange
Formik в реквизитах моего пользовательского компонента, чтобы при переключении Switch
Formik изменил свое состояние, что затем изменит реквизиты value
of Switch
.Может ли кто-нибудь помочь мне в этом вопросе?