我有一個小問題。我想在組件開始渲染時呼叫 4 個 API,所以我為此使用了 use effect,所以我回圈了我的陣列,它有 4 個專案,并且在每個專案上我呼叫一個 API,每個 API 將結果保存在名為的選擇器中filtersCount。問題是當 filtersCount 更新回圈時重新開始。我如何在不禁用 eslint 的情況下防止這種情況發生?
const fetchCounts = useCallback(
(item) => {
if (!filtersCount[item.key]) {
dispatch(getFilterCount({ filters: item.countFilters, key: item.key }));
}
},
[dispatch, filtersCount]
);
useEffect(() => {
exploreItemTypes.map((item) => {
fetchCounts(item);
});
}, [exploreItemTypes, fetchCounts]);
uj5u.com熱心網友回復:
您可以Ref為此使用 a :
const firstRender =useRef(false)
useEffect(() => {
if(firstRender.current == false){
exploreItemTypes.map((item) => {
fetchCounts(item);
});
firstRender.current = true
}
}, [exploreItemTypes, fetchCounts]);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/475030.html
