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

299
Visualizações
UseState: llamada de gancho no válida. Los ganchos solo se pueden llamar dentro del cuerpo de un componente de función
  • Estoy usando useState para actualizar la respuesta de la API.

  • Luego, tomo los datos que necesito y los mapeo en una nueva matriz (arr)

  • Después del paso anterior, estoy actualizando el gancho useState "setData" para usar el estado "datos"

  • Pero me está dando el error "Llamada de gancho no válida. Los ganchos solo se pueden llamar dentro del cuerpo de un componente de función"

Aquí está la parte del código con el que tengo problemas

 import {useEffect, useState} from 'react' import logo from './logo.svg'; import './App.css'; import axios from 'axios' import ReactSearchBox from 'react-search-box' import { set } from 'express/lib/application'; function App() { let [data, setData] = useState() useEffect(onMount,[]) function onMount(){ axios.get('https://restcountries.com/v3.1/all').then(res=>{ let arr = res.data.map((c)=>{ return {key:c.name.common, value: c.name.common} }) setData(arr) }) }

Mi código de página completa

 import "./styles.css"; import axios from 'axios' import ReactSearchBox from 'react-search-box' import {useEffect, useState} from 'react' export default function App() { let [data, setData] = useState() useEffect(onMount,[]) function onMount(){ axios.get('https://restcountries.com/v3.1/all').then(res=>{ let arr = res.data.map((c)=>{ return {key:c.name.common, value: c.name.common} }) setData(arr) }) } return ( <div className="App"> <h1>Countries</h1> {data.length>0 ? <ReactSearchBox placeholder="Placeholder" value="Doe" data={data} callback={(record) => console.log(record)} />: null} </div> ); }

Imagen de error

ingrese la descripción de la imagen aquí

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

0

El react-search-box que está utilizando utiliza React 17 . Esto no es compatible con React 18. Como resultado, una vez que se completa el estado de sus data y se invoca <ReactSearchBox , se genera un error.

Su código en sí está bien, es la dependencia el problema.

O:

  • fork react-search-box y actualícelo para que sea compatible con React 18, y use esa versión en su lugar
  • degradar su versión de React a React 17
  • cree su propio cuadro de búsqueda para eliminar la dependencia de react-search-box
  • espere a que los mantenedores de react-search-box se actualicen a React 18
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