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

83
Visualizações
Realice una solicitud http y analice los datos en React

Estoy tratando de hacer una solicitud http a mi servidor backend (ejecutado en java springboot) con mi frontnend basado en React, que devuelve una cadena que quiero analizar y asignar a los valores. Por lo que he visto en las páginas de sintaxis, quiero creer que estoy llamando a la solicitud correctamente. Mi mensaje de error menciona "No se pueden leer las propiedades de undefined (leyendo 'dividir')", lo que creo que significa que split () no es una operación válida para js o React. ¿Alguien sabe cuál es la forma correcta de hacer esto?

 import React from 'react'; import './App.css'; import Exchange from './Exchange' import Recommendations from './Recommendations'; import axios from "axios"; function Middle(){ const response = axios.get("http://localhost:8080/run"); const data = response.data; const dataArr = data.split(","); return ( <div className = 'Middle'> <h1>{data}</h1> <Exchange name = "Coinbase" btcBuy = {dataArr[1]} btcSell = "" ethBuy = "" ethSell = ""/> <Exchange name = "Binance" btcBuy = "" btcSell = "" ethBuy = "" ethSell = ""/> <Recommendations/> </div> ); }; export default Middle;
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Significa que la variable data no es una cadena. También necesita usar useEffect si desea obtener datos.

 import React, { useState, useEffect } from "react"; function Middle(){ const [data, setData] = useState([]); useEffect(() => { (async () => { try { const response = await axios.get("http://localhost:8080/run"); const data = response.data; setData(data); // use split if you have to, I dont think you need that. } catch(err) { console.error(err); } })() }, [])
about 4 years ago · Juan Pablo Isaza Relatório

0

En realidad, no lee la response correctamente, ya que es una operación asíncrona y su respuesta no está undefined en el momento en que realiza operaciones en ella de forma secuencial.

Tienes que colocar tu código en el cuerpo de .then , así:

 let dataArr = []; axios.get("http://localhost:8080/run") .then(response => { const data = response.data; dataArr = data.split(","); });
about 4 years ago · Juan Pablo Isaza Relatório

0

Es porque los datos aún no están configurados. axios devuelve la promesa de que debe usar await para ese propósito. y no deberías llamar a api como ese useeffect está construido para ese propósito

 import React from 'react'; import './App.css'; import Exchange from './Exchange' import Recommendations from './Recommendations'; import axios from "axios"; function Middle(){ const [data,setData] = React.useState(null) useEffect(()=>{ //will get rid of warning of memory leak let mounted = false if(!mounted){ axios.get("http://localhost:8080/run") .then(data=>setData(data)) .catch(err=>//do something); } return ()=>mounted= true },[]) return ( <div className = 'Middle'> <h1>{data}</h1> <Exchange name = "Coinbase" btcBuy = {dataArr[1]} btcSell = "" ethBuy = "" ethSell = ""/> <Exchange name = "Binance" btcBuy = "" btcSell = "" ethBuy = "" ethSell = ""/> <Recommendations/> </div> ); }; export default Middle;
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