我有两个用于formik登录的输入组件:
<View>
<TextField
style={{color: 'white'}}
label={label}
tintColor={formikProps.touched[formikKey] && formikProps.errors[formikKey] ? 'red' : 'white'}
onChangeText={e => formikProps.setFieldValue(formikKey, e)}
onBlur={formikProps.handleBlur(formikKey)}
{...rest}
/>
<Text style={{color: 'red'}}>
{formikProps.touched[formikKey] && formikProps.errors[formikKey]}
</Text>
</View> .
然后我有一个使用formik登录的表单:
{formikProps => (
<View style={styles.container}>
<HeaderWithLogo source={Logo.docaBlack} style={styles.header} />
<View style={styles.subContainer}>
<Animatable.View animation="slideInRight">
<InputWithMessage
label="Email"
formikProps={formikProps}
formikKey="email"
value={formikProps.values.email || email}
placeholder="dukekaboum@example.com"
autoFocus
/>
</Animatable.View>
<Animatable.View animation="slideInRight" delay={800}>
<InputWithMessage
label="Mot de passe"
formikProps={formikProps}
value={formikProps.values.password || password}
formikKey="password"
placeholder="mot de passe"
secureTextEntry
/>
成功登录后,我使用asyncStorage来存储电子邮件和密码。 当我重新加载我的loginScreen时,当我想重新登录时,我的邮件输入和密码输入的值将设置为我的存储BUT的值,yup和formik对我说没有邮件值,没有通过值.... < / p>
Haw可以很好地使用asyncStorage和formik?
答案 0 :(得分:0)
好,在 intialValues
之前使用 enableReinitialize 解决