我正在构建一个简单的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(),然后尝试您的逻辑。