Closed YuGer26 closed 1 month ago
Toast.loading 只是 Toast 一个快捷 API,可以使用如下方式。
从实现的角度,Toast.loading 自带的 type
可以被外部传入的覆盖,代码
const CustomLoading = ({
size,
color,
}: {
size: number
color: ColorValue
}) => {
const spin = useRef(new Animated.Value(0))
useEffect(() => {
const spinAnimation = Animated.timing(spin.current, {
toValue: 1,
duration: 300,
useNativeDriver: true,
})
Animated.loop(spinAnimation).start()
}, [])
return (
<Animated.View
style={{
width: size,
height: size,
alignContent: 'center',
justifyContent: 'center',
transform: [
{
rotateZ: spin.current.interpolate({
inputRange: [0, 1],
outputRange: ['0deg', '360deg'],
}),
},
],
}}>
<DoubleArrowClockwiseOutline size={size} color={color} />
</Animated.View>
)
}
Toast({
message: '提示内容',
type: 'icon',
icon: <CustomLoading size={24} color="#098" />,
})
尝试了一下使用icon api,但是没用,能否支持修改使用图标旋转或者直接可以替换gif