我对react native 0.62有一个奇怪的问题,在onChangeText中,我try 调用两个函数setData和checkEmailSyntax.我不知道为什么,但只执行第一个函数.我也看到过类似的问题,但都不管用.
此外,我对上下文也有同样的问题.当我try 在useffect中一个接一个地执行这些函数时,Context返回logout、setUser等函数,只调用最后一个函数.
您认为这是react-native 版本问题吗?或者是我的错.
好的,@Nestoro解决了这个疑问,checkEmail正在处理旧状态,没有新的邮箱,因此邮箱状态为空.新的问题是我可以改变错误的EmailSyntax状态吗?或者我必须使用useEffect,并在每次邮箱更改时将其激活?
<TextInput
style={styles.inputText}
placeholder="e-mail"
autoCompleteType="email"
onChangeText={text => {
setData({ ...data, input_email: text });
checkEmailSyntax(text);
}}
autoCapitalize="none"
placeholderTextColor="grey"
/>
const checkEmailSyntax = (inputVal) => {
if (inputVal.includes('@') && inputVal.includes('.')) {
setData({ ...data, wrongEmailSyntax: false });
} else {
setData({ ...data, wrongEmailSyntax: true });
}
};
const [data, setData] = useState({
input_email: '',
input_password: '',
wrongEmailSyntax: false,
});