Tengo un icono de filtro, que luego de ser presionado abre un filtro modal con opciones. Una de las opciones es un rango de precios, tengo un valor mínimo y máximo en ese rango de precios, y quiero que el valor mínimo sea dinámico y busque el producto más económico y lo use como valor mínimo y lo mismo para el máximo valor. En este momento he codificado 0 y 10000 para min y max. Tengo un estado central de filtro que estoy administrando usando redux-toolkit.
Segmento de filtro:
import { createSlice } from "@reduxjs/toolkit"; const laptopsMin = 0; const laptopsMax = 10000; export const filtersInitialState = { laptopsFilters: { priceRange: { minValue: laptopsMin, maxValue: laptopsMax, fromValue: laptopsMin, toValue: laptopsMax, }, brands: { HP: true, DELL: true, Razer: true, MSI: true, Alienware: true, Lenovo: true, }, screenSizes: { "17.6''": true, 14: true, 27: true, "13.3''": true, "15.6''": true, }, }, }; export const filterSlice = createSlice({ name: "filter", initialState: { filters: filtersInitialState, }, reducers: { filtersChange: (state, { payload }) => { state.filters[payload[0]][payload[1]][payload[2]] = payload[3]; }, clearFilters: (state) => { state.filters = filtersInitialState; }, }, }); export const { filtersChange, clearFilters } = filterSlice.actions; export default filterSlice.reducer;Estoy usando minValue y maxValue en mi componente de rango de precios, por lo que pensé que tan pronto como cambien en la tienda central, el componente también cambiará. Entonces, mi plan inicial era obtener los productos de mi base de datos (Firebase: cloud firestore) y ordenarlos por precio, luego usar el primer índice y el último índice como precio mínimo y máximo. Pero no parece funcionar, y el precio mínimo se mantiene en 0. Además, parece un poco redundante buscar todos los productos de nuevo por los precios.
Entonces pensé, ya estoy buscando los productos para mostrarlos en la página del producto, entonces, ¿por qué no usar el estado de los productos que tengo y simplemente ordenarlos en el front-end? Bueno, mi problema era que no puedo usar la tienda en una tienda diferente, por lo que no puedo usar el estado del producto en el estado del filtro. ¿Alguna sugerencia sobre la forma en que debería abordarlo?