我正在尝试在本机反应中构建指南针。为此,我安装了这个包npm i react-native-compass-heading。包装工作正常,但图像在旋转时有点晃动。图像正在旋转,因为度数是动态变化的。图像transform rotate
在没有动画的情况下发生。我想如果我在旋转时使用动画,那么这个问题将得到解决。但我不知道如何在本机反应中使用动画。如果有人解决了这个问题,这对我很有帮助。
这是包的代码用法:
import React, {useState, useEffect} from 'react';
import {Image, StyleSheet} from 'react-native';
import CompassHeading from 'react-native-compass-heading';
const App = () => {
const [compassHeading, setCompassHeading] = useState(0);
useEffect(() => {
const degree_update_rate = 3;
CompassHeading.start(degree_update_rate, degree => {
setCompassHeading(degree);
});
return () => {
CompassHeading.stop();
};
}, []);
return (
<Image
style={[
styles.image,
{transform: [{rotate: `${360 - compassHeading}deg`}]},
]}
resizeMode="contain"
source={require('./compass.png')}
/>
);
};
const styles = StyleSheet.create({
image: {
width: '90%',
flex: 1,
alignSelf: 'center',
},
});
export default App;
如果我用动画改变了{transform: [{rotate: ${360 - compassHeading}deg
}]}样式,它可能会解决问题(只是我的看法)。