Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

157
Views
no se puede actualizar el objeto usando ganchos en reaccionar

Tengo una función que actualizará el valor de mi objeto según el nombre de la aplicación usando el gancho useState. Pero no puedo usar el gancho, da un error de llamada de gancho no válida.

Cualquier otra forma de lograr lo mismo también funcionará.

 var myfun = (function() { const APP_NAME= "sample app" const [object, setObject] = useState({obj: 'value'}) if(APP_NAME =="sample app") { setObject({obj:'new value'}) console.log('here') } return object }); myfun();
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Cree un gancho personalizado en lugar de esa función:

 const useMyFun = () => { const [object, setObject] = useState({obj: 'value'}); const APP_NAME = 'sample name'; useEffect(() => { if (APP_NAME === 'sample name') setObject({obj: APP_NAME}); }, [APP_NAME]); return object; } // In the component you need it: const SomeComponent = () => { // will update if state changes in the useMyFun Hook; const appname = useMyFun(); // rest of your component code ... }

asegúrese de usar componentes funcionales para usar esto.

NOTA: pero esto solo será útil si APP_NAME alguna vez cambia. de lo contrario, podría usar un operador ternario simple:

 const object = APP_NAME === 'sample name' ? {obj: APP_NAME} : {obj: 'value'}
about 4 years ago · Juan Pablo Isaza Report

0

Intente mover la llamada de gancho fuera de la función de esta manera y el error de llamada de gancho no válido desaparecerá, creo:

 import React from "react"; import { useState } from "react"; function App() { const [object, setObject] = useState({ obj: "value" }); const myfun = () => { const APP_NAME = "sample app"; if (APP_NAME === "sample app") { setObject({ obj: "new value" }); console.log("here"); } return object; }; myfun(); return ( .... ); } export default App;

Espero que esto te ayude .

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!