У меня есть массив объектов пользователей, каждый из которых имеет «имя пользователя» и «пароль».Как проверить каждый объект в массиве в ReactJS + Redux?
Существует страница входа в систему, где, когда пользователь вводит имя пользователя и пароль, я хочу передать это в редуктор и сравнить их с каждым объектом в массиве «users», а если объект, который соответствует оба, «пароль» и «имя пользователя», я хочу, чтобы он возвращал «true».
Ниже редуктор:
const usersReducer = function(users = [], action){
switch (action.type){
case 'VERIFY_USER':
return users.map((user)=> {
if(user.username === action.username && user.password === action.password){
return true
} else{
return false
}
})
}
default:
return users
}
}
Но это, кажется, возвращает истину все время. Правильно ли я использую карту? Если нет, существует ли такой метод, когда он будет проходить через каждый объект в массиве? Будет оценено любое понимание или руководство. Заранее спасибо!
EDIT ** Назвав его из следующих функций:
verifyLoginUser(){
event.preventDefault()
if(this.props.actions.verifyUser(this.props.loginUser.username, this.props.loginUser.password)){
console.log('LOGGED IN')
} else {
console.log('NOT LOGGED IN')
}
}
Со следующим редуктором:
case 'VERIFY_USER':
let isVerified = false;
users.forEach((user)=> {
if(user.username === action.username && user.password === action.password){
isVerified = true;
return false;
}
});
return isVerified;
[Array.find] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find) – Hamms
надеюсь, это просто то, что вы создавая для удовольствия и фактически не выпуская, как хранение + проверка паролей так, как вы это делаете, примерно такая же неуверенность, как вы можете получить – Hamms
@ Хаммс еще не подключен к безопасному бэкенду. это просто для тестирования и обучения. оцените заботу! –