2

1)我将处理方法onPaginationChange作为父组件(A)的道具传递给子组件(B)

2) 我使用 useState() 钩子,所以每次调用 setFieldName() 时,父组件都会重新渲染,因此即使未调用处理程序,子组件也会重新渲染。

3)我正在尝试使用 useCallback 挂钩来避免由于父组件的状态更改而重新渲染子组件。但是,我仍然看到子组件根据父组件上的状态更改次数重新渲染了很多次。

这是我的处理函数作为 arg 传递给 useCallback。处理函数接收 2 个 props currentPageNopageSize并且我使用 currentPage 作为依赖项。

const onPaginationChange = useCallback((currentPageNo, pageSize) => {
    const startRow = (currentPageNo - 1) * pageSize;
    const newData = apiResponse.slice(startRow, startRow + pageSize);

    setCurrentPage(currentPageNo);
    setGridData(newData);
}, [currentPage]);

如果您找到问题的根本原因,请告诉我。

4

0 回答 0