Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应本机timemixin取消计时器超时_Javascript_Ios_React Native_Settimeout_Mixins - Fatal编程技术网

Javascript 反应本机timemixin取消计时器超时

Javascript 反应本机timemixin取消计时器超时,javascript,ios,react-native,settimeout,mixins,Javascript,Ios,React Native,Settimeout,Mixins,我发现了如何取消Javascript的超时,但如何取消计时器混合?Timermixin建议在Javascript超时期间与React Native一起使用 var TimerMixin = require('react-timer-mixin'); this.setTimeout(() => {this.setState({results: ' '})}, 1800) 如果执行了其他操作,我需要将其取消。解决方案 var clearId = this.setTimeout(() =&g

我发现了如何取消Javascript的超时,但如何取消计时器混合?Timermixin建议在Javascript超时期间与React Native一起使用

var TimerMixin = require('react-timer-mixin');

this.setTimeout(() => {this.setState({results: ' '})}, 1800)

如果执行了其他操作,我需要将其取消。

解决方案

var clearId = this.setTimeout(() => {this.setState({results: ' '})}, 1800);
this.setState({ clearId: clearId});
…稍后您要取消setTimeout调用时的某个位置

解释

var clearId = this.setTimeout(() => {this.setState({results: ' '})}, 1800);
this.setState({ clearId: clearId});
您可以通过使用clearTimeout以与常规设置超时相同的方式取消它。clearTimeout将阻止尚未调用的函数运行

调用setTimeout时,它“返回一个表示所设置计时器的ID值的数字。将此值与clearTimeout()方法一起使用可取消计时器。”

由于我认为您可能希望在单独的函数中调用clearTimeout,因此可以将clearId存储为状态属性,以便稍后在单独的函数中轻松引用

如果想在React Native中了解更多关于计时器的信息,我发现此文档非常有用

同时

通过使用TimerMixin(而不是常规的setTimeout方法),如果组件卸载,setTimeout调用将被自动阻止。非常有用!这就是为什么您应该确保使用TimerMixin而不是常规计时器方法

“我们发现,使用React Native创建的应用程序中出现致命错误的主要原因是卸载组件后计时器触发。”


TimerMixin将避免这种情况,并确保在卸载组件时清除所有计时器调用。

解决方案

var clearId = this.setTimeout(() => {this.setState({results: ' '})}, 1800);
this.setState({ clearId: clearId});
…稍后您要取消setTimeout调用时的某个位置

解释

var clearId = this.setTimeout(() => {this.setState({results: ' '})}, 1800);
this.setState({ clearId: clearId});
您可以通过使用clearTimeout以与常规设置超时相同的方式取消它。clearTimeout将阻止尚未调用的函数运行

调用setTimeout时,它“返回一个表示所设置计时器的ID值的数字。将此值与clearTimeout()方法一起使用可取消计时器。”

由于我认为您可能希望在单独的函数中调用clearTimeout,因此可以将clearId存储为状态属性,以便稍后在单独的函数中轻松引用

如果想在React Native中了解更多关于计时器的信息,我发现此文档非常有用

同时

通过使用TimerMixin(而不是常规的setTimeout方法),如果组件卸载,setTimeout调用将被自动阻止。非常有用!这就是为什么您应该确保使用TimerMixin而不是常规计时器方法

“我们发现,使用React Native创建的应用程序中出现致命错误的主要原因是卸载组件后计时器触发。”

TimerMixin将避免这种情况,并确保在卸载组件时清除所有计时器调用