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

151
Visualizações
El truco universal React TS para entradas con useState no funciona como se esperaba

He visto una solución mecanografiada con función de cambio de controlador universal, pero en mi caso funciona mal. Necesito ayuda para entender por qué sucede esto.

Cuando agrego un nuevo producto, se agrega correctamente, pero cuando trato de borrar la entrada manualmente, primero se vuelve a procesar, también cambia el contenido ya agregado.

Algoritmo para ver este error: complete las entradas, agregue el envío y elimine una letra de la entrada del título; verá que afecta el título ya agregado en otro estado, pero solo en la primera representación

Caja de arena: https://codesandbox.io/s/restless-dream-do7bqh?file=/src/App.tsx

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El siguiente código de ejemplo puede ser una solución para lograr el objetivo deseado:

En el método handleChange :

 setProduct(prev => ({ ...prev, [name]: value }));

Explicación

  • El valor prev del product se toma tal cual
  • Luego, usando el operador de propagación ... todos los accesorios de prev se distribuyen
  • A esto ahora le sigue [name] que es un nuevo accesorio que se agrega con value como el valor correspondiente
  • Cualquier accesorio existente será reemplazado.

Supongamos que la variable de name tiene el valor 'title' y el value es 'Testing 123' , entonces el objeto del product se convierte en:

 product = { id: previousValueOfId, price: previousValueOfPrice, title: 'Testing 123' }

Aquí, se supone que previousValueOfId y previousValueOfPrice son los valores.

Por qué el código de OP no obtuvo el resultado deseado

El código es:

 setProduct((prev) => { (prev as any)[name] = value; const newValue = { ...prev }; return newValue; });
  • Esto toma el producto prev y cambia su [name] prop.
  • Cuando se cambia prev , puede afectar a los elementos de la interfaz de usuario que se representan mediante product .

(NOTA: Todavía soy muy nuevo en ReactJS y si esto es incorrecto, por favor actualice adecuadamente).

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