Я делаю регистрацию в моем приложении. Когда я отправляю форму на свой локальный сервер и на этом сервере уже есть пользователь c таким username то возвращает ошибку 400 и response:
response когда ошибка
[{
"message": "User with this username already exists",
"field": "username",
"validation": "unique"
}]
Сейчас я вывожу это сообщение в alert:
if(Array.isArray(res)){
const err = res[0].message;
alert(err);
} else {
И ошибка отображается alert-ом на моем екране. Все хорошо.
Но мне нужно отобразить message: "User with this username already exists" в модальном окне. И я написал это:
if(Array.isArray(res)){
const err = res[0].message;
return (<div className="err-response">{err}</div>);
и в style.css я написал:
.err-response{
width: 1000px;
height: 500px;
background: grey;
}
Но модальное окно не появляется. Что здесь неправильно в коде что модальное окно не появляется?
SignupForm.js - Код где часть кода о которой писал выше(я закоментировал строки):
const SignupForm = () => {
const {handleSubmit, values, handleChange, errors, handleBlur} = useFormik({
/......
onSubmit: async (formValues) => {
setSubmitting(true);
try {
const res = await api('api/auth/register', {
method:'POST',
body: JSON.stringify(formValues)
});
if(Array.isArray(res)){ //this
const err = res[0].message; //this
alert(err); //this
} else {
/......
}
} catch(e) {
console.error(e);
}
},
});
return (
<div className="form">
<form onSubmit={handleSubmit}>
/............
<button type="submit" disabled={isSubmitting}>Submit Form</button>
</form>
</div>
);
};