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

392
Visualizações
¿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 Respostas
Responde à pergunta

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 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