У меня есть форма входа в React Js, которая отправляет данные пользователя при нажатии кнопки.
Что я пытаюсь получить, так это то, что когда пользователь отправляет данные, вызывается API пользовательских данных, который возвращает список пользователя. Затем, когда код получает список пользователей, я проверяю, присутствует ли пользователь в списке или нет.
Я застрял после того, как результат пришел.
Я хочу от return true or false
до setstate
ошибки, но вместо этого получаю undefined.
Это функция, которая работает
let handleSubmit = (e) => {
e.preventDefault();
let result;
result = validateLogin(formDetails.name, formDetails.password);
console.info("------------", result); //getting undefined instead of True or false
}
ПодтвердитьВход:
let validateLogin = async (email, password) => {
const response = await axios.get('https://fakestoreapi.com/users');
if (response) {
const k = response.data.find(user => {
return user.email === email && user.password === password
})
if (k) {
return true
} else {
return false
}
}
}
Пробовал, но вместо этого получил ошибку Parsing error: 'await' is only allowed within async functions
Этим все сказано, верно? Сделайте свою функцию async
...
validateLogin
— это асинхронная функция, поэтому вы должны сделать handleSubmit
асинхронной функцией и разрешить validateLogin
, чтобы получить результат.
let handleSubmit = async e => {
e.preventDefault();
let result = await validateLogin(formDetails.name, formDetails.password);
console.info('------------', result); //getting undefined instead of True or false
};
В разделе «Подтвердить файл входа»
const response = await axios.get('https://fakestoreapi.com/users');
не выполняется. И поэтому нет возврата от Validate Login
if (response)
{
`...`
} else{
`return something;`
}
Попробуйте вернуть что-то другим.
result = await validateLogin(formDetails.name, formDetails.password);