Necesito obtener productId de la consulta y luego obtener todos los datos relacionados con ese producto. Estos datos deben ordenarse por mes creado en (id).
.sort() pero eso no clasificó mis datos con prueba de que cada vez que hago clic en el botón Enviar en el cartero, recibo datos desordenados.
API:
//... router.get("/income", verifyTokenAndAdmin, async (req, res) => { const productId = req.query.pid; console.log(productId); //...producto.jsx:
useEffect(() => { const getStats = async () => { try { const res = await userRequest.get("orders/income?pid=" /*+productId */); const list = res.data.sort((a, b) => { return a._id - b._id; }); list.map((item) => setPStats((prev) => [ ...prev, { name: MONTHS[item._id - 1], Sales: item.total }, ]) ); } catch (err) { console.log(err); } }; getStats(); }, [productId, MONTHS]);¿Cómo ordenar correctamente mis datos recibidos de axios?
Probé la URL de Axios usando cartero y obtuve el método (localhost:5000/api/orders/income?pid=), muestra una lista de id (meses) y ventas totales para cada mes:
[ { "_id": 7, "total": 170 }, { "_id": 6, "total": 224 }, { "_id": 8, "total": 200 } ]Prueba esto
const list = res.data.sort((a, b) => { if(a._id>b._id){ return -1; } if(a._id<b._id){ return 1; } return 0; });