I have read several cases on stackoverflow regarding missing dependencies in useEffect: example : How to fix missing dependency warning when using useEffect React Hook?
Now the case I have is, I use useEffect for pagination: Here's the source code:
react-router-dom configuration
  { path: "/note", name: "My Note", exact: true, Component: Note },
Note Component
const Note = (props) => {
  const getQueryParams = () => {
    return window.location.search.replace("?", "").split("&").reduce((r, e) => ((r[e.split("=")[0]] = decodeURIComponent(e.split("=")[1])), r),
        {}
    );
  };
  const MySwal = withReactContent(Swal);
  const history = useHistory();
  // Get Queries On URL
  const { page: paramsPage, "per-page": paramsPerPage } = getQueryParams();
  
  // Queries as state
  const [queryPage, setQueryPage] = useState(
    paramsPage === undefined ? 1 : paramsPage
  );
  const [queryPerPage, setQueryPerPage] = useState(
    paramsPerPage === undefined ? 10 : paramsPerPage
  );
  // Hold Data Records as state
  const [notes, setNotes] = useState({
    loading: false,
    data: [],
    totalData: 0,
  });
  useEffect(() => {
    console.log(queryPage, queryPerPage);
    setNotes({
      ...notes,
      loading: true,
    });
    // Fetching data from API
    NoteDataService.getAll(queryPage, queryPerPage)
      .then((response) => {
        setNotes({
          loading: false,
          data: response.data,
          totalData: parseInt(response.headers["x-pagination-total-count"]),
        });
        return true;
      })
      .catch((e) => {
        MySwal.fire({
          title: e.response.status + " | " + e.response.statusText,
          text: e.response.data,
        });
      });
    return false;
  }, [queryPage, queryPerPage]);
  const { loading, data, totalData } = notes;
  ...
So there are two problems here:
- There is a warning React Hook use Effect has missing dependencies: 'MySwal' and 'notes'. Either include them or remove the dependency array. You can also do a functional update 'setNotes (n => ...)' if you only need 'notes' in the 'setNotes' call.If I add notes and MySwal as dependencies, it gives me a continuous loop.
- When I access the "note" page, the Note component will be rendered.
Then, with pagination: / note? Page = 2 & per-page = 10, it went perfectly. However, when returning to "/ note" the page does not experience are-render. Strangely, if a route like this/ note? Page = 1 & per-page = 10, returns perfectly. Does my useEffect not run after pagination?
 
    