我最近一直关注udemy上的原生教程,并在Android v6.0上遇到了问题。
我在TextInput
中包含一个名为Input
的自定义LoginForm.js
组件,每当我输入输入字段时,整个文本都会被清除。我怀疑问题是由value
中包含的LoginForm.js
属性引起的,因为当我删除它时,它似乎工作正常。
我还没能解决这个问题。任何帮助表示赞赏!
LoginForm.js
class LoginForm extends Component {
state = { email: '' };
render() {
return (
<Card>
<CardSection>
<Input
value={this.state.email}
label='Email'
placeHolder='Enter email to login'
onChangeText={() => { email => this.setState({ email }) }}
/>
</CardSection>
<CardSection>
</CardSection>
<CardSection>
<Button>
Login
</Button>
</CardSection>
</Card>
);
}
};
Input.js
const Input = ({ onChangeText, value, label, placeHolder }) => {
return (
<View>
<Text>{label}</Text>
<TextInput
autoCorrect={false}
value={value}
style={styles.textInputStyle}
placeholder={placeHolder}
onChangeText={onChangeText} />
</View>
); };
修改 以下评论的解决方案
我不得不替换:
onChangeText={() => { email => this.setState({ email }) }}
到
onChangeText={ (email) => this.setState({ email }) }