我制作了一个页面,每5秒请求一次API,当有新数据导航到另一个屏幕时, 但是它并没有停止循环,我注意到它继续发出请求。 我希望循环每5或10秒运行一次,当它导航到另一个页面停止时,每个请求之间也必须有超时(几秒钟)。
这是我的代码:
function SearchForAMatch( {navigation, route}) {
useEffect(() => {
const interval = setInterval(() => {
let ew = ''
fetch('https://SomeAPIWebsite/getrooms')
.then(response => response.text())
.then(data => {
ew = data.split("\n");
for(let i = 0; i < ew.length - 1; i++)
{
if(ew[i].split('(')[0] == route.params?.region && ew[i].split('(')[2].split('/')[1] == route.params?.players && ew[i].split('(')[2].split('/')[0] != ew[i].split('(')[2].split('/')[1])
{ // new information! navigate to 'JoinRoom' screen
navigation.navigate('JoinRoom', {row: i});
}
}
})
}, 5000);
return () => clearInterval(interval);
}, []);
return (
<ImageBackground source={image} style={styles.backgroundImage}>
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text style={{fontSize: hp('3%'), color: 'white', padding: 5, textAlign: 'center'}}>{route.params?.players}</Text>
</View>
</ImageBackground>
);
}
答案 0 :(得分:1)
也许只是清除导航行后面有数据的时间间隔。
for i in num:
print(i, end='')