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

202
Visualizações
Pruebe la configuración del valor del texto con React y Enzyme

¿Cómo configura el texto de una entrada de texto y luego prueba su valor con React / Enzyme?

 const input = wrapper.find('#my-input'); input.simulate('change', { target: { value: 'abc' } } ); const val = input.node.value; //val is ''

Todas las soluciones aquí parecen no funcionar.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Para comprender realmente lo que está sucediendo en su código, sería útil ver el código de su componente (específicamente su controlador onChange .

Sin embargo, con respecto al siguiente código:

 input.simulate('change', {target: {value: 'abc'}});

En realidad, esto no cambiará el valor de su elemento <input /> , sino que solo hará que se ejecute su función onChange y se proporcione un objeto de evento que se parece a {target: {value: 'abc'}} .

La idea es que su función onChange actualice su estado o tienda, por lo que activar esta función debería resultar en la actualización de su DOM. Si en realidad no tiene un controlador onChange definido usando input.simulate('change') no hará nada.

Entonces, si su objetivo es establecer el valor de una entrada y no activar un controlador onChange , entonces puede usar JS para actualizar manualmente el DOM usando algo como wrapper.find('#my-input').node.value = 'abc'; sin embargo, esto está eludiendo el ciclo de procesamiento de React y es probable que vea este valor borrado/eliminado si hace algo para activar un nuevo procesamiento.

over 4 years ago · Santiago Trujillo Relatório

0

Estoy usando React 16 y Enzyme 3.10 aquí y esto funcionó completamente para mí (después de probar demasiadas sugerencias diferentes):

 wrapper.find("input").instance().value = "abc";

Aparentemente, en versiones anteriores podías usar node o getNode() en lugar de instance() , que formaban parte de mis muchos intentos anteriores.

over 4 years ago · Santiago Trujillo Relatório

0

Esto funciona tanto para la Enzima 3 como para la Enzima 2:

 wrapper.find('input').getDOMNode().value = 'new value'; wrapper.find('input').simulate('change');

.getDOMNode() se puede usar como .node en Enzyme 2 y como .instance() en Enzyme 3.

over 4 years ago · Santiago Trujillo 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