Ok, genial. Ah, así que obtén datos, agregué un pequeño ayudante aquí que básicamente desempaqueta la recarga. Sí, no quiero tener que, no voy a leer todo el código aquí. Creo que si esto fuera una verdadera masterclass, probablemente nos ensuciaríamos un poco más las manos, pero creo que vale la pena leerlo por ti mismo si estás interesado. Estoy tratando de pensar si hay algo muy interesante aquí. Creo que cubrimos la mayor parte. Creo que sí, por lo que los usuarios, todo ese map, todo sigue funcionando como antes. Nuevamente, creo que lo único que agrega este ejemplo es el marcador de invalidación. También comencé a escribir más abstracciones, pero ese es el punto. El punto es que a medida que construyes tu biblioteca, realmente puedes refactorizarla como quieras. Puedes, si te gusta esta cosa de getAcing, por ejemplo, tal vez no lo entiendas. ¿Dónde está eso? Tal vez no lo entiendas, pero el punto importante es que no tuviste que pensar, oh, ya envolví tu cosa. Necesito escribir use getAcing, necesito escribir derive, necesito lo que sea. Básicamente, puedes sacar estas abstracciones de funcionamiento. Ok, eso es todo. Sí, ya comencé a hacer algo de filtrado aquí, ya hicimos algo de ordenamiento antes, ¿verdad? Y lo que va a suceder es que todo va a funcionar como antes, puedo seleccionar cosas. Si selecciono un error, se va a actualizar y eso está bien. Un último paso y luego responderé cualquier pregunta de la única persona que ha aguantado, si hay alguna. Entonces, lo último es que porque lo puse en la abstracción, escribí una lógica de filtrado. Y la lógica de filtrado es básicamente así, si escribo 'towel' o algo así, decido dejar los errores 404 porque de lo contrario no hay forma de actualizarlos. Sin embargo, si los actualizas y luego no coinciden con el filtro, desaparecen. Veamos cómo funciona eso. Sí, básicamente creé un nuevo filtro usando getState, cosas normales, pásalo por aquí. Y luego, en lugar de decir users.all aquí, digo users.all.filter. Y luego simplemente digo, ¿es el estado del usuario? Si el estado del usuario no es éxito, déjalo porque, como dije, quieres volver a cargarlo. De lo contrario, verifica si el usuario coincide con el filtro, que veremos en un segundo. O si el filtro está vacío, eso también está bien. ¿Y qué significa matches? Una vez más, es un método que podríamos poner en nuestro objeto de usuario local y podemos hacer lo que queramos, ¿verdad? Así que simplemente obtenemos los datos, obtenemos los datos, éxito. Y este es el filtro más aburrido, ¿verdad? Como los nombres en minúsculas incluyen el texto, entonces devuelve verdadero. Supongo que puedo hacer esto. Me sorprende que tengamos uno para el largo. Ahora, si escribo algo como 'Leanna', sin tener que propagar, pensar en dependencias, etc. Todo lo que hago es cambiar la cosa subyacente y eso fue suficiente para hacer que eso desaparezca, cambiar la cosa descargada, actualizarla mientras sucede y todo eso. Ok. Ah, también debo señalar, creo que no mencioné esto antes, pero a medida que cambio el ID de usuario, cambia la cosa que está seleccionada y la forma en que funciona es simplemente, entonces tenemos un ID actual, ¿verdad? El ID actual se conecta a este campo React normal y porque todo lo demás, como el usuario actual, se basa en users.getCurrentID, en todas partes decimos usuario, veamos, cuando pasamos el usuario al perfil, como eso es suficiente para que se actualice cuando simplemente movemos esto, ¿verdad? Si escribo tres, si escribo nueve, ok. Para dar un paso atrás y luego responderé tus preguntas, creo que lo interesante de esto es que básicamente puedes escribir tu, en cierto sentido, esto no es realmente ReactQuery, pero es como si fueras a escribir un ReactQuery estándar, puedes llegar bastante lejos aquí y todo lo que tienes que hacer es hacer un map que tenga los valores en él, puedes usar track state, pero en su mayoría lo estás haciendo en algún lugar profundo y luego todo lo demás es como un objeto que envuelve a otro objeto, pero juntos estás almacenando algunas cosas en un campo privado, como cuando invalido algo, eso es solo otra pieza de estado que puedes modificar y eso invalidará automáticamente el bloque de configuración y creo que algo en lo que pasé mucho tiempo y estoy orgulloso, pero es difícil de comunicar porque la mayoría de las personas tratan de evitarlo, es que el modo estricto de React hace que sea muy, muy difícil tener valores estables. Entonces, si solo estás haciendo esto en Preact o Vue o algo así, es bastante fácil tener valores estables y luego StarBeam se parece mucho a lo que ya esperas. Pero en React, en particular, el modo estricto desmonta y configura el estado constantemente, por lo que si quieres poder decir, estoy leyendo desde el valor estable, tengo un getter en él, tiene su referencia a esta celda y no es un useState, ¿verdad? Es un tipo especial de cosa. Hay mucho trabajo que se realiza para que el modo estricto parezca invisible, ¿verdad? En resumen, obtienes una nueva instancia de, cuando React desmonta y configura el componente detrás de escena, como gratuitamente, eso realmente desmonta y configura el recurso, pero no puedes decir que eso está sucediendo porque todo esto sucede dentro del recurso del usuario y el sistema reactivo.
Comments