Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

180
Visualizações
Reaccionar: useState/useEffect - Cómo recopilar 10 elementos en tiempo real

Estoy tratando de recuperar 10 nombres de usuario cuando escribo una tecla. Por ahora, solo me devuelve un nombre de usuario si el nombre de usuario está exactamente en la lista de marcadores de posición json. Así que cuando escribo "Karia" nada regresa hasta que escribo "Karianne"

Entonces, por ejemplo, si la entrada obtiene la primera letra "A", quiero devolver los primeros 10 elementos que coinciden de la lista de marcadores de posición json. Si pongo una "R", después de eso, es "Ar", quiero recuperar los primeros 10 nombres de usuario "Ar" que coincidan, como Aron, Ariel, Aria, etc.

¿Alguien tiene una idea?

 export const Search = () => { const [user, setUser] = useState(null); const [searchQuery, setSearchQuery] = useState("") useEffect(() => { if (searchQuery.length > 0) { const fetchFunc = async () => { const response = await fetch(`https://jsonplaceholder.typicode.com/users?username=${searchQuery}`) const resJSON = await response.json(); setUser(resJSON[0]); }; fetchFunc(); } }, [searchQuery]); return ( <Flex className={styles.search__container}> <Flex className={styles.search__elements}> <InputGroup className={styles.search__input}> <InputRightElement className={styles.search__inputElements} children={<RiSearchLine className={styles.search__icon} />} /> <Input className={styles.search__users} type='search' placeholder='Search' onChange={event => setSearchQuery(event.target.value)} /> {user ? ( <div> <h3>{user['name']}</h3> <h3>{user['username']}</h3> <h3>{user['email']}</h3> </div> ) : ( <p>No user found</p> )} </InputGroup> </Flex> </Flex> ) }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

La principal limitación aquí está en el lado de la API. Su API debe proporcionarle los nombres similares. Si no es así, entonces no puedes hacer mucho.

about 4 years ago · Juan Pablo Isaza Relatório

0

Tal vez la API proporcione una forma de recuperar usuarios con nombres parciales (pero dudo que sea el caso). De lo contrario, puede recuperar todos los usuarios una vez y simplemente mostrar el que se ajuste a sus requisitos cada vez que escriba algo.

Para resumir: cuando su componente esté montado (al principio), busque a todos los usuarios y almacénelos. Realizará esta llamada a la API solo una vez.

Luego, cada vez que escriba algo, simplemente tome los 10 usuarios que tienen un nombre que incluye lo que escribió.

about 4 years ago · Juan Pablo Isaza Relatório

0

Idealmente, esto debería ser manejado por la API, y debería preocuparse por cuándo activar o volver a activar la llamada a la API.

La API le proporciona una lista de nombres, corta un conjunto de 10 de la lista de nombres y lo configura en usuarios, y luego simplemente los mapea en su interfaz de usuario.

Además, tal vez podría optimizar aún más la función eliminando el rebote de la llamada API.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda