El método setState() no cambia el estado (mocha + Enzyme).
Estoy probando una función que restablece todos los componentes. Mi problema es que, cuando intento establecer un estado con:
wrapper.dive().setState({'startHour': ['5']})
esto no cambia nada si luego uso:
wrapperS.dive().state().startHour
¿Alguna idea al respecto?
davy.ai
Solución para setState () sin actualizar el estado del componente
Si estás experimentando un problema en el que llamar a
setState ()
en un componente usandowrapper.dive().setState ()
no actualiza el estado, puede haber un par de razones detrás de esto. Algunas posibles razones por las quesetState ()
no puede actualizar el estado del componente incluyen:estado
del componente no se está actualizando en absoluto: asegúrate de agregar una llamada awrapper.update()
después de llamar asetState ()
para que Enzyme vuelva a renderizar el componente y actualice su estado.estado
que estás verificando enwrapperS.dive().state().startHour
podría no ser el mismo que el objeto deestado
que tus componentes están utilizando internamente. Esto puede suceder cuando usasshallow()
porque solo renderiza el componente de nivel superior y no sus hijos. Intenta usarmount()
en su lugar si tus pruebas requieren más profundidad.Es posible que hayas escrito incorrectamente la variable de
estado
o le hayas pasado un tipo de valor incorrecto. Asegúrate de hacer referencia a la propiedad correcta y de utilizar los tipos de datos correctos.Si ya has verificado todo esto y aún no puedes actualizar el estado del componente, podría valer la pena considerar que hay un problema en tu código que requiere depuración.