在动画期间更新状态会停止动画运行
Updating state during animation stops animation from functioning
我正在尝试使用一个可拖动的组件,当拖动时它也会创建一个类似进度条的效果。它几乎可以正常工作,但我遇到了一些奇怪的事情。
在我的 onDrag
处理程序中,我更新了栏的状态,以便栏可以呈现其适当的宽度。但是一旦我设置了状态,我的动画就会重置,因为内部 panResponder
会重新创建自己。
我是 React(和 React-native)的新手。有几个类似的问题,但我无法弄清楚他们正在做什么来解决问题。
React Native state update during animation "resets" the animation
Update state during animation in react native?
这是我要生产的组件的摘要。
当你改变state的时候他又重新渲染所有的东西,然后按照你给他的图重新给你X的位置
可以使用Animated组件改变拖动宽度而不改变状态
附上一个例子
成功:)
添加导入
import React, { useState, useRef } from 'react';
import { Text, View, StyleSheet, Animated } from 'react-native';
添加参考动画值
const widthAnim = useRef(new Animated.Value(0)).current;
更改动画值
const onDrag=(event, gestureState)=> {
let width = Math.min(Math.max(gestureState.moveX, iconSize), dragWidth);
Animated.timing(widthAnim, {
toValue: Math.max(width - padding, 0),
duration: 1,
}).start();
}
现在在条形组件中使用它!
<Animated.View style={[styles.bar, { width: widthAnim }]} />
我正在尝试使用一个可拖动的组件,当拖动时它也会创建一个类似进度条的效果。它几乎可以正常工作,但我遇到了一些奇怪的事情。
在我的 onDrag
处理程序中,我更新了栏的状态,以便栏可以呈现其适当的宽度。但是一旦我设置了状态,我的动画就会重置,因为内部 panResponder
会重新创建自己。
我是 React(和 React-native)的新手。有几个类似的问题,但我无法弄清楚他们正在做什么来解决问题。
React Native state update during animation "resets" the animation
Update state during animation in react native?
这是我要生产的组件的摘要。
当你改变state的时候他又重新渲染所有的东西,然后按照你给他的图重新给你X的位置
可以使用Animated组件改变拖动宽度而不改变状态
附上一个例子
成功:)
添加导入
import React, { useState, useRef } from 'react';
import { Text, View, StyleSheet, Animated } from 'react-native';
添加参考动画值
const widthAnim = useRef(new Animated.Value(0)).current;
更改动画值
const onDrag=(event, gestureState)=> {
let width = Math.min(Math.max(gestureState.moveX, iconSize), dragWidth);
Animated.timing(widthAnim, {
toValue: Math.max(width - padding, 0),
duration: 1,
}).start();
}
现在在条形组件中使用它!
<Animated.View style={[styles.bar, { width: widthAnim }]} />