1)我将处理方法onPaginationChange作为父组件(A)的道具传递给子组件(B)
2) 我使用 useState() 钩子,所以每次调用 setFieldName() 时,父组件都会重新渲染,因此即使未调用处理程序,子组件也会重新渲染。
3)我正在尝试使用 useCallback 挂钩来避免由于父组件的状态更改而重新渲染子组件。但是,我仍然看到子组件根据父组件上的状态更改次数重新渲染了很多次。
这是我的处理函数作为 arg 传递给 useCallback。处理函数接收 2 个 props currentPageNo,pageSize并且我使用 currentPage 作为依赖项。
const onPaginationChange = useCallback((currentPageNo, pageSize) => {
const startRow = (currentPageNo - 1) * pageSize;
const newData = apiResponse.slice(startRow, startRow + pageSize);
setCurrentPage(currentPageNo);
setGridData(newData);
}, [currentPage]);
如果您找到问题的根本原因,请告诉我。