使用反应新的背景调子



我正在构建一个简单的Android应用程序。我现在试图让手机每3秒振动一次。这是我的代码:

componentDidMount() {
    BackgroundTimer.runBackgroundTimer(() => {
        Vibration.vibrate(1000);
    }, 3000);
}
componentWillUnmount() {
    BackgroundTimer.stopBackgroundTimer();
}
render() {
    return (
        <View style={styles.container}>
            <ScrollView>
                {this.state.errors.map(e => {
                    const {error, solved, errorInfo, key, uid, date} = e;
                    return (
                        <View key={e.key} style={{backgroundColor: solved === true ? 'green' : '#ff5b68'}}>
                            <Text>{error}</Text>
                            <Text>{errorInfo}</Text>
                            <Text>{key}</Text>
                            <Text>{uid}</Text>
                            <Text>{date}</Text>
                            <MarkedAsSolvedButton id={key} solved={solved}/>
                        </View>
                    )
                })}
            </ScrollView>
        </View>
    );
}

但是我遇到了一个错误:

TypeError:TypeError:Undefined不是对象(评估'rnbackgroundTimer.start')

我缺少什么?

我正在使用此模块:https://github.com/ocetnik/reaeact-native-background-timer

您可以使用Clear Interval方法。首先声明一个全局变量以易于启动和结束计时器。示例代码如下:

let myTimer;
class ABC extends React.Component {
componentDidMount()
{
myTimer = BackgroundTimer.setInterval(()=> {
// Your repeated task here.
}, 3000);
}
componentWillUnMount()
{
  // Code to stop timer.
 BackgroundTimer.clearInterval(myTimer);
}
render() {
// remaining code
 }
}

我猜我需要在使用它之前先启动组件。首先呼叫访问BackowdTimer.start(),然后尝试您的逻辑。

相关内容

  • 没有找到相关文章

最新更新