首页 文章

反应原生的脏/原始变化与redux-form导致键盘被隐藏和闪烁

提问于
浏览
0

我使用带有react-native的redux-form,并且由于某种原因,当用户将第一个char键入输入时,表单的状态从 dirty 变为 pristine ,键盘被隐藏,屏幕闪烁 . 这种情况发生在Android Nexus 5X设备上 .

查看组件:

const TextField = ({placeholder: p, ...props}) =>
    <Field {...props}
           component={({input}) => {
               return <TextInput
                   value={input.value}
                   onChange={input.onChange}
                   secureTextEntry={props.type === 'password'}
                   placeholder={p}
               />
           }}/>

const Login = ({submit}) =>
    <View>
        <Text>You need to log in</Text>
        <TextField placeholder="Name"
                   name="name"/>
        <Button title="Login" onPress={submit}/>
    </View>

export default login(Login)

login 是包含在内的HOC

reduxForm({
            form: 'login',
            initialValues: {
                name: 'a',
            },
            onSubmit: vals => {
                console.log('submitting', vals)
            }
        })

react-native中的什么样的事件可以创建这样的行为?

1 回答

  • 0

    所以最后问题与redux-form无关,而是使用内联匿名组件

    ({input}) => {
                   return <TextInput
                       value={input.value}
                       onChange={input.onChange}
                       secureTextEntry={props.type === 'password'}
                       placeholder={p}
                   />
               }
    

    这只是为了'原型'目的而被忽略了 .

    通常像 const TextFieldComponent = ({input}) => ... 一样声明组件解决了这个问题 .

相关问题