我有一个基于过滤器和偏移量(页面)更新的分页数据列表当偏移量更新(下一页/上一页)时,我点击 API 并获取新数据。当过滤器更新时,我将偏移量重置为 0。
问题是,当过滤器更新并更新偏移量时,它会导致 useEffect 被触发两次。依次调用 api 两次。
const [filter, setFilter] = useState('All');
const [offset, setOffset] = useState(0);
onFilterChange = (value) => {
setFilter(value);
offset !== 0 && setOffset(0);
}
getDataFromAPI = useCallback(() => {
const endpoint = `https://example.com/data?filter=${filter}&offset=${offset}`;
CallApi(endpoint);
}, [offset, filter])
useEffect(getDataFromAPI, [getDataFromAPI]);