react-native - 函数 clearInterval() 不起作用 React Native
问题描述
我试图停止 setInterval 函数,该函数在我们单击后每 100 毫秒生成一个随机数,但我的 clearInterval 不会做任何事情。
import React, {useState} from 'react';
import { Text, View, TouchableOpacity } from 'react-native';
export default function App() {
const [randomNumber, setRandomNumber] = useState ('CLICK');
const generateRandomNumber = () => {
setInterval(() => {setRandomNumber(Math.floor(Math.random() * 100) + 1 )}, 100);
};
const stopWheel = () => {
clearInterval(generateRandomNumber);
console.log(randomNumber);
};
const spinWheel = () => {
generateRandomNumber();
setTimeout(stopWheel, 2000);
};
return (
<View>
<TouchableOpacity onPress={spinWheel}>
<Text>{randomNumber}</Text>
</TouchableOpacity>
</View>
);
};
解决方案
这是因为您试图清除函数而不是间隔。尝试这样的事情:
let timer;
const generateRandomNumber = () => {
timer = setInterval(() => { setRandomNumber(Math.floor(Math.random() * 100) + 1) }, 100);
};
const stopWheel = () => {
clearInterval(timer);
console.log(randomNumber);
};
推荐阅读
- python - 尝试使用一个类,但在 Kivy 中出现 NoneType 错误
- sql - 如何计算两个日期列的出现次数并仅在一张表中显示?
- image - 从单元格中删除图像并显示新单元格高度的问题
- python - 如何逐行打印命令 output.txt
- c++ - 鼠标单击 QSpinBox::validate 中显示的工具提示会导致崩溃
- php - Laravel 5.2:/vendor/laravel/framework/src/Illuminate/Container/Container.php:734 中不存在类日志
- android - 未解析的类:FileProvider——使用下载的 JAR
- xampp - 文件更新时 Xampp 不会重新加载更改
- c++ - Visual Studio 的字符集编码
- azure - ARM嵌套模板'无效模板找不到模板资源'