У меня есть настраиваемая функция для определения имени пользователя или адреса электронной почты, и я хочу дать пользователю возможность оттуда войти в систему. Это возможно?
Я попытался создать объект для объекта Link, из реактивного маршрутизатора DOM, но он не появляется, когда добавляется запятая, или возвращает объект объекта, когда вставляется со знаком плюс. Я хочу, чтобы в уведомлении, полученном по электронной почте, была указана ссылка, чтобы пользователь мог напрямую щелкнуть по имени входа.
handleSubmit = async (e) => {
e.preventDefault();
const EmailField = document.getElementById('email');
const userField = document.getElementById('username');
const signinRedirect = <Link to='/signin'> login </Link>;
const newUser = {
username : this.state.username,
email : this.state.email,
password : this.state.password,
confirmPassword : this.state.confirmPassword,
};
//check passwords match before submitting
if (this.state.passwordsMatch) {
let url = window.location.hostname.split('.')[0] === 'localhost' ? 'http://localhost:3306' : 'https://petsosbackend.apps.nonprod-mpn.ro11.allstate.com';
try {
await axios.post(url + '/register', newUser)
.then(res=> {
if (res.status===202) {
this.props.history.push('/registersuccess');
//if email is taken
} else if (res.data==='email'){
EmailField.setCustomValidity('Email address is in use, please select another or '+ {signinRedirect});
EmailField.reportValidity();
//if name is taken
} else if (res.data==='name') {
userField.setCustomValidity('Username is in use, please select another or' + signinRedirect);
userField.reportValidity();
}
})
} catch(error) {
console.log("Catch = ", error.response);
}
}
}
Очевидно, здесь больше логики, но подумайте, что это две ключевые части, и вам просто нужно выяснить, как сделать, чтобы signinRedirect появлялся в предупреждении о валидности.
Большое спасибо!..