[英]Stop infinite loop in react native useEffect
我通過setInterval
調用一個 function 但 function go 無限循環,我的應用程序卡住了。 它發生在 android,有人可以幫我解決這個問題。
謝謝
useEffect(() => {
const interval = setInterval(() => {
sendCoordinate(location);
}, 180000);
return () => clearInterval(interval);
}, [location]);
我正在呼叫的 function
const sendCoordinate = async (locParms) => {
console.log("@2 it working3", checkDayStatus, location);
if (checkDayStatus === "Started") {
let data = {
lat:
locParms !== null
? locParms && locParms.lat
: location && location.lat,
lng:
locParms !== null
? locParms && locParms.lng
: location && location.lng,
dispatcher_id: 1,
truck_id: 1,
};
return await LocationAPI.sendLocationFeed(data);
}
};
原來你的timer每次都是創建的,把useEffect arguments留空就行了,[location] -> []
useEffect(() => {
const interval = setInterval(() => {
sendCoordinate(location);
}, 180000);
return () => clearInterval(interval);
}, [location.lng, location.lat]);
所以你需要像這樣從依賴數組中更改位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.