我在 react-native 有问题。
我的应用程序有许多屏幕和表单。我需要为这种风格创建 TextInput 组件并将程序保持在干净的代码中。
这是我的 TextInput 组件:
import React, { Component } from 'react';
import { Text, View, TextInput, StyleSheet } from 'react-native';
import FormStyles from './formStyle.css';
class CustomTextInput extends Component {
state = {
isFocused: false,
};
render() {
const props = this.props;
const styles = StyleSheet.create({
label: {
color: global.black,
marginBottom: 3,
fontSize: global.normalText,
fontFamily: global.fontRegular,
},
textInput: {
fontFamily: global.fontRegular,
backgroundColor: '#fff',
height: 50,
padding: 10,
borderRadius: 8,
fontSize: global.largeText,
borderStyle: 'solid',
borderColor: global.Color_transparent,
borderWidth: 1,
lineHeight: 1
},
textInputOnFocus: {
borderBottomColor: global.primaryColor,
borderBottomWidth: 2,
},
textInputHasError: {
backgroundColor: global.formBgError,
borderColor: global.primaryColor,
}
});
return (
<View style={FormStyles.formControl}>
{props.label ? <Text style={styles.label}>{props.label}</Text> : null}
<TextInput
style={[
props.error && styles.textInputHasError,
this.state.isFocused && styles.textInputOnFocus,
styles.textInput
]}
keyboardType={props.keyboardType || 'default'}
placeholder={props.placeholder || ''}
onFocus={() => this.setState({ isFocused: true })}
onBlur={() => this.setState({ isFocused: false })}
returnKeyType={props.returnKey || 'none'}
secureTextEntry={props.type === 'password' ? true : false}
autoComplete={props.autoComplete || 'off'}
autoFocus={props.autoFocus || false}
{...props}
/>
{props.error ?
<Text style={FormStyles.formError}>{props.error}</Text>
: null}
</View>
)
}
}
export default CustomTextInput
但是,在 LoginScreen 我有两个文件:电话号码和密码我需要电话号码 TextInput,有下一步按钮和设置属性:
returnKeyType="next"
在登录屏幕中,当我使用 Ref 创建 ref 密码字段时,它无法正常工作!我创建的 Ref 不是问题。因为当我删除 CustomTextInput 组件时它可以正常工作。但我需要使用表单组件。
如果您对此有所了解,请指导我。谢谢