首页 > 解决方案 > 在 React Native 中搜索响应数据的最佳方式?

问题描述

我有一个使用 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 槽中。我需要避免这种情况。

例如,Billy 有 2 个帐户,他的主帐户的用户名是 A5555,他的提升帐户用户名是 D6629。在对用户名的响应中,他的 D6629 可能位于插槽 0 中,而我需要的 A 帐户位于插槽 1 中,这使得上面的代码毫无用处。

我不太熟悉 React Native 如何循环并找到从该变量开始并获取该变量。

最好的方法是什么?

任何其他语言我都会使用一个 for each loop 来寻找一个 startsWith("A")

谢谢!

标签: react-native

解决方案


你需要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
    }

})

推荐阅读