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

103
Views
¿Hay alguna manera de poner ganchos de reacción en una función que no sea un componente de función?

Estoy tratando de crear una función que no sea un componente ni ganchos a los que se pueda llamar en un evento específico. Digamos que tengo una función simple que publica datos usando axios y quiero usar navegar después de que la publicación sea exitosa. Aquí está el ejemplo

 export const authLogin = (email, password) => { const config = { withCredentials: true, headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'X-CSRFToken': Cookies.get('csrftoken') } } let navigate = useNavigate(); return dispatch => { console.log('Masuk ke dalam auth file'); dispatch(authStart()); axios.post('/log_in/', { email: email, password: password }, config) .then(res => { if (res.data.error) { alert(res.data.error) dispatch(authFail(res.data.error)) } else { const token = res.data.key; const expirationDate = new Date(new Date().getTime() + 3600 * 1000); localStorage.setItem('token', token); localStorage.setItem('expirationDate', expirationDate); dispatch(authSuccess(token)); dispatch(checkAuthTimeout(3600)); alert('login berhasil') navigate("/", { replace: true }); } }) .catch(err => { alert(err); dispatch(authFail(err)) }) } }

tengo un error que dice ingrese la descripción de la imagen aquí

pero cuando trato de cambiar el nombre de la función con una letra mayúscula, ocurrió otro problema, ¿cómo resuelvo este problema? ingrese la descripción de la imagen aquí

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Se debe conectar un gancho a una fibra que esté conectada directamente al árbol de componentes de React. NO PUEDE usar enlaces fuera del árbol de componentes porque React no puede realizar un seguimiento de ellos (es por eso que los enlaces siempre deben ejecutarse en el mismo orden y no pueden ser condicionales, porque React realiza un seguimiento de su estado internamente).

La única vez que puede usar un gancho fuera de un componente es desde otro gancho.

En resumen, debe poder dibujar una línea recta desde la llamada de enlace hasta React que representa el árbol de componentes. Si no puede, entonces es una llamada de enlace inválida.

LA SOLUCIÓN

... en su caso, es simplemente pasar la función de navigate a su acción como parámetro:

 const MyComponent = () => { const navigate = useNavigate(); const doSomethingHandler = () => { dispatch(authLogin(email,password,navigate)) } } const authLogin = (email,password,navigate) => { // ...do your action and call the `navigate` parameter // when you need to }
about 4 years ago · Santiago Trujillo 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!