#react-native
Вопрос:
У меня есть собственное приложение, которое я создаю с помощью React Native. Я все еще очень новичок в родной реакции и пытаюсь найти наиболее эффективный способ сделать это.
У меня есть этот фрагмент кода, который принимает данные с наших серверов LDAP и назначает их крючкам.
.then((response) => {
setName(response.data.ldap_users[0].realname);
setPosition(response.data.ldap_users[0].position);
setPhone(response.data.ldap_users[0].phone);
setEmail(response.data.ldap_users[0].email_address);
setUsername(response.data.ldap_users[0].username);
setRealName(response.data.ldap_users[0].real_name);
setRoom(response.data.ldap_users[0].room);
setIsSending(false);
return data;
У всех наших пользователей есть имена пользователей, которые начинаются с A, B или C, например A67345 или B45437 и т.д.
Однако в наших учетных записях с повышенными правами есть буквы, такие как D и E, и иногда в массиве они оказываются в слоте 0. Мне нужно этого избежать.
Так, например, у Билли 2 учетные записи, его основная учетная запись имеет имя пользователя A5555 и у него повышенное имя пользователя учетной записи D6629. В ответе на имя пользователя его D6629 может быть в слоте 0, а его учетная запись A, которая мне нужна, находится в слоте 1, что делает приведенный выше код бесполезным.
Я недостаточно хорошо знаком с тем, как React Native перебирает и находит, начинается с и извлекает эту переменную.
Каков наилучший подход к этому?
На любом другом языке я бы просто использовал a для каждого цикла, ищущего StartsWith(«A»)
Спасибо!
Ответ №1:
вам нужна if
такая проверка.
if(response.data.ldap_users[0].username.charAt(0).toUpperCase() === 'A' || other conditions){
// push your data here
}
вы могли бы использовать foreach
цикл, такой как
response.data.ldap_users[0].foreach((user) => {
if(user.username.charAt(0).toUpperCase() === 'A' ||charAt(0).toUpperCase() === 'B' ||charAt(0).toUpperCase() === 'C'){
// add user user to the array here
}else{
// ignore
}
})
Комментарии:
1. Хорошо, у меня была проверка «если», и она работает только несколько раз. Просто сделайте кучу проверок «Если» для каждого слота?