Количество повторов анимации. По умолчанию равно 2.
Неположительное значение (например, 0 или -1) приведет к тому, что анимация будет повторяться бесконечно, пока не будет отменена или снесена. Например, если компонент размонтирован или была вызвана функция cancelAnimation.
withRepeat возвращает объект анимации. Он может быть либо напрямую присвоен shared value, либо использован в качестве значения для объекта стиля, возвращаемого из useAnimatedStyle.
importReactfrom'react';import{View,Button,StyleSheet}from'react-native';importAnimated,{useSharedValue,withTiming,Easing,useAnimatedStyle,withRepeat,withSequence,}from'react-native-reanimated';constANGLE=10;constTIME=100;constEASING=Easing.elastic(1.5);exportdefaultfunctionApp(){constrotation=useSharedValue(0);constanimatedStyle=useAnimatedStyle(()=>({transform:[{rotateZ:`${rotation.value}deg`}],}));consthandlePress=()=>{// highlight-next-linerotation.value=withSequence(// deviate left to start from -ANGLEwithTiming(-ANGLE,{duration:TIME/2,easing:EASING,}),// wobble between -ANGLE and ANGLE 7 timeswithRepeat(withTiming(ANGLE,{duration:TIME,easing:EASING,}),7,true),// go back to 0 at the endwithTiming(0,{duration:TIME/2,easing:EASING,})// highlight-next-line);};return(<Viewstyle={styles.container}><Animated.Viewstyle={[styles.box,animatedStyle]}/><Buttontitle="wobble"onPress={handlePress}/></View>);}conststyles=StyleSheet.create({container:{flex:1,alignItems:'center',justifyContent:'center',height:'100%',},box:{height:120,width:120,backgroundColor:'#b58df1',borderRadius:20,marginBottom:30,},});