Home > Net >  React - Axios request page and limit not working
React - Axios request page and limit not working

Time:05-22

Why is this still loading all data and not only first 15?

const [page, setPage] = useState(1);

useEffect(() => {
    const getHistory = async () => {
      const res = await axios.get(`/api/payment?page=${page}&limit=${15}`, {
        headers: { Authorization: token },
      });
      setHistory(res.data);
    };
    getHistory();
  }, []);`

This is what happens in backend

getPayments: async (req, res) => {
    try {
      const payments = await Payments.find();
      res.json(payments);
    } catch (err) {
      return res.status(500).json({ msg: err.message });
    }
  }

CodePudding user response:

You should actually retrieve and use your query params in the getPayments function:

getPayments: async (req, res) => {
  try {
    const { page, limit } = req.query
    const payments = await Payments.find().skip(page * limit).limit(limit).exec();
    res.json(payments);
  } catch (err) {
    return res.status(500).json({ msg: err.message });
  }
};
  • Related