我正在构建一个简单的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:未定义不是对象(正在评估“ RNBackgroundTimer.start”)
我想念什么?
我正在使用以下模块:https://github.com/ocetnik/react-native-background-timer
答案 0 :(得分:0)
我猜想该组件需要先启动才能使用。首先调用BackgroundTimer.start(),然后尝试执行逻辑。
答案 1 :(得分:0)
您可以使用clearInterval方法。首先声明一个全局变量以方便地启动和结束计时器。示例代码如下:
const 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
}
}