我正在运行一个 setinterval
函数来检查我的 React Native 应用程序中来自 coinbase 的付款,我每 10 秒运行一次该函数,付款完成后,我清除 setinterval
并导航到主页,但 setinteval
仍然继续运行,我该如何停止它?
useEffect(() => {
getData();
myinterval();
}, []);
const myinterval= () => setInterval(function () {
checkCharge();
}, 10000);
const stopCounter = () => {
clearInterval(myinterval);
}
const checkCharge = async () => {
try {
...SOME_CODE_HERE...
stopCounter()
navigation.navigate("HomeScreen");
} catch (e) {
console.log(e);
}
};
最佳答案
几个月前我遇到了类似的问题,这个解决方案应该可以完美地工作:
const myinterval = setInterval(function () {
checkCharge();
}, 10000);
但就我而言,由于我将 setInterval
存储在变量而不是函数中,因此遇到了一些奇怪的问题,例如 setInterval
可能会运行三次或保留即使在我使用 clearInterval(INTERVAL_NAME);
之后运行,因此如果您想检查是否已付款,请创建一个按钮,告诉用户在付款后单击,这将比在 setInterval
关于javascript - 如何在 native react 中停止 setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70963471/