如何从 Reanmited Value 中获取数值?
How to get numeric value from Reanmited Value?
我使用 react native reanimated 创建了一个简单的动画,但我无法访问 Reanimated Value 的数值
我使用 victory native 饼图,我想制作一个简单的效果,即饼图角度从 0 到 360,但我已经尝试过 react-native animated API 它与添加侦听器一起使用效果很好,但我想要使用 reanimated 性能问题
我要找的图表从0到360开始的动画效果
运行 正确使用 react-native 动画 API:
const Chart = props => {
const { data, width, height } = props;
const endAngleAnimatedValue = new Value(0);
const [endAngle, setEndAngle] = useState(0);
const runTiming = Animated.timing(endAngleAnimatedValue, {
duration: 1000,
to: 360
});
useEffect(() => {
endAngleAnimatedValue.addListener(_endAngle => setEndAngle(_endAngle));
runTiming.start();
return () => {
endAngleAnimatedValue.removeAllListeners();
};
}, [endAngleAnimatedValue]);
return (
<VictoryPie
data={data}
width={width}
height={height}
padding={0}
startAngle={0}
endAngle={endAngle}
style={{
data: {
fill: ({ datum }) => datum.fill,
fillOpacity: 0.7
}
}}
/>
);
};
我如何才能通过重新激活获得所需的输出?
我完全忘记了这个问题,
如果使用react-native-reanimated v1,这里我们可以有两个实现:
1. using react-native-svg and some helpers from react-native-redash
2. using `const AnimatedPie = Animated.createAnimatedComponent(VictoryPie)` then passing `endAngleAnimatedValue` as a prop.
在复活的 v2 中:
您可以显式使用 .value
来设置动画 sharedValues, derivedValues
,但您也必须创建动画组件
我使用 react native reanimated 创建了一个简单的动画,但我无法访问 Reanimated Value 的数值
我使用 victory native 饼图,我想制作一个简单的效果,即饼图角度从 0 到 360,但我已经尝试过 react-native animated API 它与添加侦听器一起使用效果很好,但我想要使用 reanimated 性能问题
我要找的图表从0到360开始的动画效果
运行 正确使用 react-native 动画 API:
const Chart = props => {
const { data, width, height } = props;
const endAngleAnimatedValue = new Value(0);
const [endAngle, setEndAngle] = useState(0);
const runTiming = Animated.timing(endAngleAnimatedValue, {
duration: 1000,
to: 360
});
useEffect(() => {
endAngleAnimatedValue.addListener(_endAngle => setEndAngle(_endAngle));
runTiming.start();
return () => {
endAngleAnimatedValue.removeAllListeners();
};
}, [endAngleAnimatedValue]);
return (
<VictoryPie
data={data}
width={width}
height={height}
padding={0}
startAngle={0}
endAngle={endAngle}
style={{
data: {
fill: ({ datum }) => datum.fill,
fillOpacity: 0.7
}
}}
/>
);
};
我如何才能通过重新激活获得所需的输出?
我完全忘记了这个问题,
如果使用react-native-reanimated v1,这里我们可以有两个实现:
1. using react-native-svg and some helpers from react-native-redash
2. using `const AnimatedPie = Animated.createAnimatedComponent(VictoryPie)` then passing `endAngleAnimatedValue` as a prop.
在复活的 v2 中:
您可以显式使用 .value
来设置动画 sharedValues, derivedValues
,但您也必须创建动画组件