No hay nada de malo en tener algunos componentes con estado.
zerkms
3
Eso depende completamente de dónde se esté utilizando el estado. Piense en las tiendas redux como globales. Todo lo que no necesita ser global puede permanecer privado para un componente y sus elementos secundarios.
azium
Respuestas:
139
Los usos claros de setStateserían para componentes de interfaz de usuario que tienen un estado de visualización local, pero que no son relevantes para la aplicación global. Por ejemplo, un valor booleano que representa si un menú desplegable específico se muestra activamente no necesita estar en estado global, por lo que es más conveniente controlarlo mediante el estado del componente del menú.
Otros ejemplos pueden incluir el estado de colapso / expansión de líneas en una visualización de acordeón de una jerarquía. O posiblemente la pestaña seleccionada actualmente en la navegación de pestañas. Sin embargo, en ambos ejemplos, aún puede optar por controlar el estado de la interfaz de usuario de forma global. Por ejemplo, esto sería necesario si desea mantener el estado de expansión / contracción en el almacenamiento del navegador para que se conserve al actualizar la página.
En la práctica, suele ser más fácil implementar dichos elementos de la interfaz de usuario con el estado local y refactorizarlos en el estado global según sea necesario.
Para continuar con esto, la entrada relevante de las preguntas frecuentes de Redux enfatiza que el uso de setStateestá completamente bien : redux.js.org/docs/faq/…
markerikson
2
Si va a transferir o usar la representación del lado del servidor, creo que siempre debe usar Redux
Respuestas:
Los usos claros de
setState
serían para componentes de interfaz de usuario que tienen un estado de visualización local, pero que no son relevantes para la aplicación global. Por ejemplo, un valor booleano que representa si un menú desplegable específico se muestra activamente no necesita estar en estado global, por lo que es más conveniente controlarlo mediante el estado del componente del menú.Otros ejemplos pueden incluir el estado de colapso / expansión de líneas en una visualización de acordeón de una jerarquía. O posiblemente la pestaña seleccionada actualmente en la navegación de pestañas. Sin embargo, en ambos ejemplos, aún puede optar por controlar el estado de la interfaz de usuario de forma global. Por ejemplo, esto sería necesario si desea mantener el estado de expansión / contracción en el almacenamiento del navegador para que se conserve al actualizar la página.
En la práctica, suele ser más fácil implementar dichos elementos de la interfaz de usuario con el estado local y refactorizarlos en el estado global según sea necesario.
fuente
setState
está completamente bien : redux.js.org/docs/faq/…