如何在RN中连续运行功能

时间:2019-01-30 20:42:17

标签: react-native

我正在尝试使用React Native创建一个声音计量应用程序,但似乎如果我开始计量,在用户停止之前它是无限循环,直到用户将其挂起。

基本上,用户点击一个按钮,调用startMonitor(),然后启动runMonitor,然后checkSound()对当前的分贝级别进行检查。

此处的相关代码部分

<% @user_groups.each do |group| %>
  <tr>
    <td>
      <%= group.name %>
    </td>
    <td>
      <%= group.channels.pluck(:name) %>
    </td>
  </tr>
<% end %>

关于如何连续/无限运行功能直到用户取消功能的任何想法?

1 个答案:

答案 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会在组件卸载时清除这些计时器触发器。