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

169
Visualizações
Recuperar múltiples valores nulos antes de recuperar datos en la solicitud de recuperación

¿Cómo trato con volver nulo en las solicitudes de recuperación? Eventualmente, la solicitud se realiza, pero por alguna razón devuelve un montón de valores nulos antes de obtener los datos. ¿Podría ser algo malo con mi código o es solo un comportamiento de búsqueda normal?

Obtener configuración

 const [subDomains, setSubDomains] = useState(null) const [website, setwebsite] = useState("twitter.com") useEffect(() => { async function fetchData() { const response = await fetch("api_url="+website,{ headers: { "X-Api-Key": "hidden" } }) const data = await response.json() const subdomains = data["ContributingSubdomain"] const convertedsubdomains = Object.keys(subdomains) let otherdomains = [] for(let i=0; i < convertedsubdomains.length; i++) { const subdomains2 = data.ContributingSubdomain[i]["DataUrl"] otherdomains.push(subdomains2) } setSubDomains(otherdomains) } fetchData() }, [website])

Luego, la propiedad de subdominios se pasa a un componente como dominios .

 const SubDomains = ({domains}) => { return ( <div> <div> {domains.forEach((e) => <h2>{e}</h2> )} </div> </div> ) } export default SubDomains

Recibo un error que dice TypeError: no se pueden leer las propiedades de nulo (leyendo 'forEach')

Cuando hago console.log(domains) , veo que obtengo un montón de nulos antes de obtener los datos reales, lo que supongo que está causando el error anterior. pero no se que estoy haciendo mal al pedir los datos y pasarlos ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Realmente no sé por qué regresa sigue devolviendo nulo antes de obtener la respuesta, pero dado que inicializó subDomains en nulo, devolverá nulo para el primer renderizado. Pero para arreglar el

TypeError: no se pueden leer las propiedades de nulo (leyendo 'forEach')

todo lo que tiene que hacer es verificar si los domains tienen un valor antes de asignar los valores.

Puedes cambiar esta línea:

 {domains.forEach((e) => <h2>{e}</h2> )}

a:

 {domains?.forEach((e) => <h2>{e}</h2> )}

Observe que agregué un signo de interrogación antes de los dominios. Es el operador de encadenamiento opcional (?.) . Le permite leer el valor de una propiedad ubicada en lo profundo de una cadena de objetos conectados sin tener que verificar que cada referencia en la cadena sea válida.

Además, ¿por qué no mapear los valores, en lugar de forEach ? Al igual que:

 {domains?.map((domain, index) => <h2 key={index}>{domain}</h2> )}

Si hay identificaciones que vienen con los dominios, puede usarlas como clave en lugar del índice.

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