Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

391
Vistas
¿Hay alguna forma de actualizar el estado sin activar una nueva representación?

Estoy creando una aplicación en la que puedes practicar tus matemáticas. Tengo una función que devuelve dos números aleatorios en el renderizado de la página y paso la entrada para recopilar la respuesta del usuario en estado. Tiene un cambio que ejecuta setusersAnswer() para el valor introducido en la entrada. pero el problema es que cada vez que ingreso algo, vuelve a generar la pregunta completa en cada cambio realizado en la respuesta de los usuarios del componente de entrada.

aquí está la función en mi componente:

 const Question = ({input}) => { const makeQuestion = () => { firstNumber = randomRange(); secondNumber = randomRange(); return <>{`${firstNumber} +${secondNumber}`}</>; }; return (<> {makeQuestion()} {input} </>)} export default Question;

en mi aplicación js, tengo una entrada de texto:

aplicación.js:

 function App() { const [UserAnswer, setUserAnswer] = useState('') const handleUserAnswer=(val)=>{ setUserAnswer(val); } return( <Question input={<Input handleUserAnswer={handleUserAnswer}/>} /> )}

mi componente de entrada se ve así:

 const Userinput = ({handleUserAnswer}) => { return ( <Input onChange={handleUserAnswer}> )}

ahora limpié este código para que solo haya las partes básicas. Aquí hay una representación visual de cuál es el problema:

ingrese la descripción de la imagen aquí

si ingreso algo en la entrada, se activa una nueva representación y la función de número aleatorio se ejecuta nuevamente.

ingrese la descripción de la imagen aquí

desencadena una nueva representación de toda la interfaz de usuario que no quiero. Quiero almacenar la respuesta del usuario sin activar una nueva representación.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

En cuanto a la pregunta en el título - no. Establecer el estado fundamentalmente activará una nueva representación; La vista de React está diseñada para fluir directamente desde el estado, por lo que cuando el estado cambia, se supone que la vista también debe cambiar.

En cuanto al cuerpo de su pregunta, parece que un ajuste simple que le daría lo que desea sería crear firstNumber y secondNumber solo una vez, independientemente de las re-renderizaciones. Dado que nunca cambian para un componente determinado, pueden ser de estado o de referencia.

 const Question = ({ input }) => { const [numbers] = useState(() => [randomRange(), randomRange()]); return (<> {`${numbers[0]} +${numbers[1]}`} {input} </>) } export default Question;

Todavía habrá re-renderizaciones, pero ahora que los números aleatorios solo se han generado una vez, las re-renderizaciones no causarán problemas. (No tenga miedo de volver a renderizar. No suele ser problemático).

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda