Вам нужно будет каким-то образом передавать результаты неудачного входа в систему через реквизит, где бы в вашем коде не было <DismissableAlert />
, которое, как я предполагаю, будет равно /login
или подобному.Я предполагаю сделать что-то вроде этого, передав ошибку через опцию 'state', которую navigate
предоставляет:
const error = null;
const user = await ooth.authenticate('local', 'login', {
username: email,
password: password,
}).catch(e => {
error = e
console.err(e.message)
});
if(error) {
await navigate(`/login`, {
state: { error: error },
});
}
Затем в вашем LoginPage
компоненте (или как он там называется),После этого у вас должен быть доступ к результату ошибки в качестве реквизита, который вы затем можете передать в Alert:
render() {
const {error} = this.props
return(
<div>
<LoginForm />
{error &&
<DismissibleAlert message={error.message} />
}
</div>
)
}
или что-то в том же духе, в зависимости от ваших компонентов.Я заметил, что у вас есть сообщение по умолчанию в DismissableAlert, так что это всего лишь пример, показывающий, что вы можете передать ошибку, чтобы использовать ее для отображения соответствующего сообщения.