Я нахожусь на этом экране Register
с функцией handleSubmit()
, которая предположительно обрабатывает проверку электронной почты, которая гарантирует, что электронная почта является правильным форматом, но я ее не вижу.
_handleSubmit = () => {
console.log("Register.js line 69: ", this.props.email);
if (this.props.email) {
Keyboard.dismiss();
this.setState({ displaySpinner: true });
this.props
.submitVerificationEmail(this.props)
.then(exists => {
if (exists) {
if (this.props.registeredUser.Credentials.IsPasswordSet) {
this.setState({ displaySpinner: false });
//eslint-disable-next-line
this.props.navigation.navigate("RegisterEmailPassword");
} else {
this.props.handlePasswordReset(this.props.email).then(() => {
this.setState({ displaySpinner: false });
// this key means the user registration triggered the password recovery link
LocalStorage.save("USER_RESET_PASSWORD_RESET_BY_SYSTEM", true);
//eslint-disable-next-line
this.props.navigation.navigate("ResetLinkConfirmationAlert", {
fromSystem: true
});
});
}
} else {
this.setState({ displaySpinner: false });
//eslint-disable-next-line
this.props.navigation.navigate("RegisterNoEmail");
}
})
.catch(error => {
Alert.alert(
"Error",
error,
[
{
text: "OK",
onPress: () => this.setState({ displaySpinner: false })
}
],
{ cancelable: false }
);
});
} else {
Alert.alert(
"Invalid Email",
"Please enter a valid email.",
[
{
text: "OK",
onPress: () => this.setState({ displaySpinner: false })
}
],
{ cancelable: false }
);
}
};
Мне просто кажется, что он обрабатывает любую электронную почту, предоставленную при регистрации в конечной точке. Я верю, что если бы я мог добавить какой-то тип ===
к if (this.props.email) {
, это бы решило это, но я не смог добавить ничего, что не вернет undefined. Любые предложения или, возможно, лучшее решение?
Вы можете подумать, что submitVerificationEmail(this.props)
обрабатывает проверку электронной почты, но я не вижу его в этом создателе действий:
export function submitVerificationEmail({ email }) {
return async dispatch => {
try {
dispatch(resetVerifications());
dispatch({ type: types.EMAIL_VERIFICATION_SUBMIT_STARTED });
dispatch({ type: types.RESET_LOGIN_STATE });
const url = `${endpoints.v2.INDIVIDUALS}?email=${email}`;
console.log("registrationAction line 22: ", url);
const userExists = await requester.sendGet(url);
console.log("registrationAction line 24: ", userExists);
if (userExists) {
dispatch({
type: types.EMAIL_VERIFICATION_SUBMIT_ENDED_SUCCESS,
payload: userExists
});
dispatch(setEmailField(email));
return Promise.resolve(true);
}
return Promise.resolve(false);
} catch (error) {
dispatch({
type: types.EMAIL_VERIFICATION_SUBMIT_ENDED_ERROR,
payload: error
});
if (error.Code === 6099) {
return Promise.resolve(false);
}
return Promise.reject("Please enter a valid email address.");
}
};
}