我正在尝试为恐慌症患者制作一个呼吸应用程序以循环扩大和缩小一个圆圈。我正在尝试使文本随动画及时更改。呼吸状态是圆圈中显示的文本变量 - 它可以是“吸入”、“保持”或“呼出”。动画使圆圈在breathTimings.in 的持续时间内从60% 变为全尺寸,然后它应该变为说“hold”,然后暂停breathTimings.hold,然后在说“exhale”的同时缩小回60%。
class BreatheCircle extends React.Component {
state = {
animated:new Animated.Value(0.6),
breathe: 'Inhale',
}
componentDidMount(){
this.state.animated.setValue(0.6)
this.animateCircle();
}
componentWillUnmount(){
Animated.timing(this.state.animated).stop();
}
sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
animateCircle(){
this.setState({breathe: 'Inhale'})
Animated.timing(this.state.animated, {toValue: 1, duration:breatheTimings.in*1000}).start()
this.sleep(breatheTimings.in*1000)
this.setState({breathe: 'Hold'})
this.sleep(breatheTimings.hold*1000)
this.setState({breathe: 'Exhale'})
Animated.timing(this.state.animated, {toValue: 0.6, duration:breatheTimings.out*1000}).start()
this.sleep(breatheTimings.out*1000)
this.animateCircle()
}
目前这不起作用(用expo测试它)请有人给我关于去哪里的建议。谢谢