Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

¿Qué son los estados derivados?

16/19
Recursos

Aportes 6

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Estados derivados

  • Variables que no se crean su propio estado pero dependen de un estado anterior
  • No llaman a React.useState para definir su información
  • Utilizan la información que ya habíamos guardado antes en otro estado y a partir de ahí algún calculo, cuenta, registro, etc.
  • Pueden tener la misma convencion de nombres que los estados “normales”
  • Se actualizan automáticamente con los cambios a los estados “normales”.
  • Se crean a partir de estados normales.

NO SE CREAN USANDO:

  • React.useState

Para mi es necesario que en cualquier forma de manejar el estado hay que separar los distintos casos de nuestra logica.
Si tenemos por ejemplo un reducer que maneje si se muestre o no un modal y que maneje los todos, es importante evaluar si los pudiesemos separar en dos reducer independientes.

Todo is back…

Son variables que dependen del estado.
.
Ejemplo de estado derivado:

const [allItem, setItem] = React.useState(initialValue); // Estado imperativo
 
const item = allItem.filter(todo => (!todo.deleted)); // Estado derivado
 
// Estado derivado
const saveItem = (newItem) => {
   try {
     const stringifiedTodos = JSON.stringify(newItem);
     localStorage.setItem(itemName, stringifiedTodos);
     setItem(newItem);
   } catch(error) {
     setError(error);
   }
 }

En mi código, el searchedTodos quedo diferente al del profesor:

const searchedTodos = todos.filter(todo=>todo.text.toLowerCase().includes(searhValue.toLowerCase()));

Me comentan si tambien les quedó igual, si les quedo diferente o si ven alguna falla.

Creo que para manejar el estado en cualquier componente o con React Hooks debemos considerar varios factores con respecto a que queremos en el futuro en nuestro código.
En el TodoForm creamos estados independientes porque solo los necesitamos ahí por ahora. Me parece que podemos pensar en algo más declarativo si queremos que la aplicación crezca o si sabemos que en futuras funcionalidades necesitaremos compartir esos estados.
Creo que es importante considerar el futuro de la aplicación, si otras personas trabajaran en el equipo, como vamos a hacer la documentación, etc. El código declarativo me parece que ayuda sobre todo a los programadores que seguirán trabajando en el código, porque la idea es que al funcionalidad para el usuario se mantenga.