El estado puede ser complejo y es importante entender esto para comprender qué problemas resuelven realmente
las soluciones de administración de estado como Redux.
Si tuviéramos una aplicación como esta, que no es la aplicación que creamos, pero que podría ser una aplicación que está
creando donde tiene dos áreas diferentes, una donde administra a sus usuarios, donde los usuarios pueden iniciar sesión, donde
los usuarios pueden administrar sus panel de control, vea su panel de control, etc., y uno donde tenga
productos en una lista que los usuarios
pueden agregar a un carrito, entonces estas áreas en realidad no son totalmente independientes, pero en su aplicación, se mostrarán
en diferentes pantallas, muy separadas de El uno al otro.
Pero la pregunta de si un usuario ha iniciado sesión en lo que necesita aquí también podría ser
relevante en otra parte
de su aplicación y en este momento, normalmente tendría que pasar esos datos manualmente a través de accesorios
pasándolos del componente A a B a C a D hasta E, donde quizás necesites
esto, eso no es realmente muy conveniente.
En cambio, desea tener una configuración de la aplicación donde algo cambia, por ejemplo, un usuario inicia sesión o en
nuestra aplicación
de comidas, configura un filtro determinado y lo guarda y luego esta información se propaga a su aplicación y se pasa automáticamente
a los lugares donde lo necesite, pero no a través de accesorios, sino
con un mecanismo detrás de escena que lo ayude con respecto a esto y ahí es donde Redux es una
solución común que usamos en las aplicaciones React y React Native para administrar ese estado.
Ahora, ¿cómo funciona Redux?
En primer lugar, Redux es una biblioteca de terceros que puede agregar a React Native para
usarla allí y se trata de tener una tienda central. Redux presenta una tienda central en la memoria, no una
base de datos, pero está en la memoria, en la memoria Javascript, por ejemplo, dónde se encuentra el estado de su
aplicación, de modo que los datos de los que dependen diferentes partes de su aplicación se pueden almacenar y
luego, cuando está
en un componente, tiene algo que quiere manipular ese estado, por ejemplo, estamos
configurando un filtro o marcando una comida como favorita, luego enviamos una llamada acción, que es un paquete de información predefinido
que diría, que tiene un cierto esquema que puede manejar Redux según lo configurado por usted.
Esta acción alcanza el llamado reductor y usted será el que escriba ese reductor como desarrollador,
para que pueda controlar qué tipo de acción acepta un reductor, de modo que qué
tipo de paquete de información requiere su reductor y ese reductor recibe la acción y deriva un nuevo estado basado
en el estado anterior que luego actualiza este estado almacenado centralmente. Entonces el reductor está ahí para actualizar
el estado al final.
Y cuando esa tienda cambia, cuando el estado allí cambia, también puede tener suscripciones a esa tienda desde
otros componentes, estas suscripciones se activarán cuando su tienda, cuando su estado cambie y el estado
actualizado pase a los lugares. en su aplicación, por lo que para los
componentes que están interesados en estos cambios, por ejemplo, este componente
aquí podría estar interesado en algunas actualizaciones, bueno, entonces puede configurar una suscripción y se
le informará sobre la actualización y
obtendrá el nuevo estado a través de su accesorios o también con ganchos React como aprenderás en este módulo.
Así es como funciona Redux y esa es la idea detrás de Redux.
Ahora una nota importante, si estás un poco más avanzado en React, probablemente también conozcas la API de contexto
React que está integrada en React.
Esto también se puede usar para algunos estados y gestión de datos detrás de escena, pero no es un buen reemplazo para todos los
casos de uso en los que usa Redux.
No profundizaré más en esto aquí porque este no es realmente un curso sobre los entresijos de diferentes
construcciones de React, en cambio queremos aprender React Native aquí pero adjunto, encontrará algunos recursos que lo ayudarán con esa
comparación entre React Context API y Redux y cuándo usar cuál. En este módulo, usaremos Redux, que es muy flexible,
que definitivamente podemos usar y le mostraré cómo configurarlo con React Native
y cómo, por supuesto, puede trabajar con él.