1 00:00:02,640 --> 00:00:06,640 Esto concluye la parte de recetas favoritas, ahora es el momento de 2 00:00:06,690 --> 00:00:12,270 asegurarse de que realmente filtremos nuestras recetas porque tenga en cuenta en la pantalla de comidas 3 00:00:12,330 --> 00:00:17,260 de categoría, en realidad estamos recuperando nuestras comidas filtradas de nuestro estado y ahora, 4 00:00:17,370 --> 00:00:24,870 por supuesto, en nuestro estado, Las propiedades de comidas siempre contienen todas las comidas y nunca cambian, y eso es algo que 5 00:00:24,870 --> 00:00:26,880 quiero cambiar como siguiente paso. 6 00:00:29,310 --> 00:00:35,910 Nuevamente, comencemos agregando una acción apropiada que comience agregando un identificador que exporto aquí y nombraré este conjunto 7 00:00:35,910 --> 00:00:43,830 de filtros y estableceré los filtros aquí también como un texto y crearé una acción adecuada para crear los filtros del conjunto 8 00:00:43,830 --> 00:00:47,150 de funciones del creador y aquí espero obtener un 9 00:00:47,190 --> 00:00:53,550 argumento con la configuración de mi filtro, que debería ser un objeto al final con los datos 10 00:00:53,580 --> 00:00:57,730 isGlutenFree, isLactoseFree, isVegan e isVegetarian en él y devolveré un objeto 11 00:00:57,730 --> 00:01:05,040 de acción donde el tipo de curso se establece filtros, por lo que este identificador y luego el filtros, ese 12 00:01:05,520 --> 00:01:12,000 es mi objeto de configuración de filtro, por lo que este objeto con todos los valores verdaderos o 13 00:01:12,000 --> 00:01:15,030 falsos para los cuatro criterios de filtro 14 00:01:15,030 --> 00:01:17,880 diferentes que tenemos. Ese es el 15 00:01:17,880 --> 00:01:24,900 creador de la acción, ¿ahora qué haremos en el reductor? En el reductor, ahora tenemos que manejar 16 00:01:24,900 --> 00:01:30,950 ese nuevo caso, así que aquí, antes de lo predeterminado, agregaré el caso donde 17 00:01:30,950 --> 00:01:38,900 manejo los filtros establecidos y para eso debe importar el identificador de filtros establecidos de las acciones de comidas 18 00:01:38,900 --> 00:01:47,580 y en los filtros establecidos, el El objetivo ahora, por supuesto, es actualizar nuestras comidas filtradas para reflejar los filtros configurados. 19 00:01:47,590 --> 00:01:53,350 Ahora tenga en cuenta que esto realmente contenía una clave 20 00:01:53,350 --> 00:02:04,630 de filtros que al final será un objeto Javascript que tiene algo como glutenFree: verdadero, sin lactosa: falso y queremos 21 00:02:04,630 --> 00:02:15,090 reflejar esta configuración en nuestra matriz de comidas filtradas. Así que aquí, tendré mis filtros aplicados, digamos donde simplemente extraigo los filtros de las acciones, 22 00:02:15,090 --> 00:02:16,770 ese es, por supuesto, un 23 00:02:16,830 --> 00:02:18,320 paso que podría omitir, 24 00:02:18,320 --> 00:02:22,730 solo estoy tratando de escribir un código comprensible que hable por sí mismo. 25 00:02:22,890 --> 00:02:27,990 Así que solo estoy extrayendo los filtros configurados por el usuario y 26 00:02:27,990 --> 00:02:29,190 nos encargaremos de 27 00:02:29,190 --> 00:02:40,740 enviar esta acción más tarde y luego aquí, estableceré mis comidas filtradas, crearé una nueva constante de comidas filtradas en función de mis comidas totales, así que 28 00:02:40,740 --> 00:02:46,470 no las comidas filtradas pero todas las comidas disponibles y allí, quiero filtrarlas con 29 00:02:46,470 --> 00:02:47,280 el 30 00:02:47,280 --> 00:02:53,670 método de filtro incorporado que ofrece Javascript. El filtro siempre devuelve una matriz nueva, lo cual es bueno porque 31 00:02:53,880 --> 00:02:55,470 no quiero editar ninguna matriz 32 00:02:55,470 --> 00:03:02,370 existente todavía, quiero obtener una nueva matriz en su lugar y será una matriz donde se guardan todos los elementos para los que pasamos esta 33 00:03:02,370 --> 00:03:08,850 función filter devuelve verdadero y descarta todos los elementos donde devolvemos falso. Esta función se ejecutará para cada comida y luego, en 34 00:03:08,850 --> 00:03:14,250 esta función, podemos revisar todos los filtros que el usuario configuró y verificar si esa comida coincide con 35 00:03:14,250 --> 00:03:20,100 alguno de los filtros y, por lo tanto, debe descartarse o si pasa todos los filtros, por así decirlo 36 00:03:20,100 --> 00:03:21,240 y debería mantenerse. 37 00:03:22,170 --> 00:03:29,460 Entonces aquí podemos verificar si hay filtros. glutenFree y simplemente espero que mis filtros, disculpe, 38 00:03:29,460 --> 00:03:33,920 apliquen filtros, que este objeto que obtengo tenga una clave sin gluten. 39 00:03:34,290 --> 00:03:44,200 Si eso es cierto y mi comida no está libre de gluten y, por lo tanto, necesito agregar un signo de exclamación aquí, 40 00:03:44,200 --> 00:03:51,220 entonces sé que esta comida debe descartarse, ¿verdad? Porque no es libre de gluten pero tengo un 41 00:03:51,220 --> 00:03:57,250 filtro que debería ser libre de gluten. Por lo tanto, devolveré falso y no me 42 00:03:57,250 --> 00:03:58,540 importan otros 43 00:03:58,540 --> 00:04:06,220 filtros porque ya no coincide con este filtro, puedo descartarlo. Si lo superamos si se verifica, podemos verificar el siguiente filtro, los filtros aplicados 44 00:04:06,310 --> 00:04:07,150 sin lactosa. 45 00:04:07,150 --> 00:04:11,820 Si eso es cierto y mi comida no está libre de 46 00:04:11,830 --> 00:04:17,260 lactosa, la misma lógica que antes con los gluten, puedo devolver falso y soltarlo. 47 00:04:18,810 --> 00:04:29,370 A continuación, si marca, si los filtros aplicados vegetariano están configurados y mi comida no es vegetariana, así que la misma lógica que antes, puedo dejarlo porque podría haber pasado 48 00:04:30,070 --> 00:04:34,930 los otros filtros, pero si la comida no es vegetariana pero estoy buscando 49 00:04:34,930 --> 00:04:40,990 comidas vegetarianas , entonces debería deshacerme de él. Y por último, pero no menos importante, 50 00:04:40,990 --> 00:04:43,840 los filtros aplicados. vegano. 51 00:04:43,930 --> 00:04:51,980 Si estoy buscando comidas veganas pero mi comida no es vegana aquí y, por cierto, aquí solo estoy aprovechando todas estas propiedades que son parte 52 00:04:52,220 --> 00:04:55,290 de mis comidas, si echamos un vistazo a nuestros 53 00:04:55,340 --> 00:05:01,550 modelos, en la comida, allí tenemos isGlutenFree, isVegan, etc. como propiedades en cada comida, por lo que cada comida 54 00:05:01,640 --> 00:05:07,070 tiene la información para los filtros que deben incluirse o excluirse, por lo que cada comida 55 00:05:07,070 --> 00:05:07,690 tiene 56 00:05:07,700 --> 00:05:10,940 eso y solo estoy usando esto aquí en el reductor. 57 00:05:11,000 --> 00:05:18,170 Por lo tanto, aquí en el caso vegano, también quiero devolver falso y solo si supero todo esto si 58 00:05:18,230 --> 00:05:26,420 compruebo que sé que tengo una comida que coincide con todos los filtros que configuré y allí por ahora, puedo devolver verdadero. 59 00:05:26,540 --> 00:05:30,830 Todavía estoy dentro de ese método de filtro y devuelvo verdadero, lo que 60 00:05:30,830 --> 00:05:38,390 significa que quiero mantener esa comida en mis comidas filtradas constante, que es mi nueva matriz y ahora, en general, después de derivar esta 61 00:05:38,810 --> 00:05:45,140 matriz de comidas filtradas, tengo que devolver un nuevo estado copiando el estado anterior y luego quiero anular mis comidas 62 00:05:45,140 --> 00:05:51,740 filtradas aquí con las comidas filtradas que obtuve aquí. Entonces, las comidas filtradas a la izquierda del colon son 63 00:05:51,740 --> 00:05:53,010 la propiedad 64 00:05:53,060 --> 00:05:59,540 en el objeto de estado, por lo que esencialmente esta propiedad y las comidas filtradas en el lado derecho 65 00:05:59,540 --> 00:06:00,830 del colon se refieren 66 00:06:01,110 --> 00:06:06,890 a esta constante, también puedo nombrar estas comidas filtradas actualizadas para que sea más claro al respecto. 67 00:06:06,940 --> 00:06:10,390 Así es como se actualiza mi estado cuando se establecen los filtros. 68 00:06:10,390 --> 00:06:13,570 Ahora, por supuesto, debemos asegurarnos de que también despachemos esta acción eventualmente.