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

83
Views
El controlador de cambios eliminado en React no cambiará la entrada si se define el valor

Estoy codificando un cliente de Reddit simple en JavaScript usando React, y tengo un elemento en mi encabezado que cambia el subreddit que se mostrará, con el rebote de Lodash aplicado dentro del gancho useMemo de React para evitar llamadas handleChange excesivas mientras se escribe.

Sin embargo, cuando la propiedad de valor del elemento de entrada se establece en la variable useState adecuada, la entrada se vuelve imposible de modificar.

Este es el código que funciona, aunque con limitaciones que espero superar:

 import React, { useMemo } from 'react'; import debounce from 'lodash.debounce'; export const Header = ({ subreddit, setSubreddit }) => { const handleChange = ({ target }) => { setSubreddit(target.value) } const debouncedHandleChange = useMemo(() => { return debounce(handleChange, 500) }, []) return ( Superliminal/ <input type='text' onChange={debouncedHandleChange} placeholder={subreddit} autofocus/> ) }

Las cosas se vuelven problemáticas cuando defines la propiedad de valor del elemento de entrada de la siguiente manera: value={subreddit}

Actualmente, no entiendo por qué esto hace que la entrada se vuelva inalterable, y preferiría que el valor, y no solo el marcador de posición, permanezca igual a la variable de estado de subreddit. Especialmente no entiendo porque sin la implementación de rebote, puede definir el valor como la variable de estado sin problemas.

Si es necesario, el código en el archivo App.js para configurar el subreddit es simplemente:

 import React, { useState } from 'react' import { Header } from './components/Header/' function App() { const [ subreddit, setSubreddit ] = useState('all') return ( <> <Header subreddit={subreddit} setSubreddit={setSubreddit} /> </> ) }

¿Podría alguien explicarme por qué mi código no funciona según lo previsto y ayudarme a solucionarlo?

¡¡Gracias por adelantado!!

about 4 years ago · Juan Pablo Isaza
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!