我正在尝试使用React Native创建一个声音计量应用程序,但似乎如果我开始计量,在用户停止之前它是无限循环,直到用户将其挂起。
基本上,用户点击一个按钮,调用startMonitor(),然后启动runMonitor,然后checkSound()对当前的分贝级别进行检查。
此处的相关代码部分
<% @user_groups.each do |group| %>
<tr>
<td>
<%= group.name %>
</td>
<td>
<%= group.channels.pluck(:name) %>
</td>
</tr>
<% end %>
关于如何连续/无限运行功能直到用户取消功能的任何想法?
答案 0 :(得分:2)
您可以使用setInterval
:
startMonitor() {
this.runMonitorIV = setInterval(runMonitor, 1000);
}
runMonitor() {
while(this.state.monitorStatus) {
if(this.state.beginWait) {
this.wait(5000);
}
if(!this.state.isTransmitting) {
this.checkSound();
}
}
}
//called on user event
stopMonitor() {
clearInterval(this.runMonitorIV);
}
(不确定您的上下文或范围,但这是基本思想)
还有一个TimerMixin会在组件卸载时清除这些计时器触发器。