Как обновить toValue для весенней анимации в React Native (Animated API)? - PullRequest
0 голосов
/ 17 июня 2020

Я хотел бы иметь возможность изменять toValue анимации в ответ на обновление свойств. Официальные документы для React Native Animated API заявляют, что метод пружины

анимирует значение в соответствии с аналитической моделью пружины на основе затухающих гармоник c колебаний. Отслеживает состояние скорости для создания движений жидкости по мере обновления toValue и может быть объединено в цепочку.

Однако я не нашел нигде как мы можем обновление toValue. По сути, мой компонент выглядит так:

const ProgressBar = ({ loadPercentage }) => {
    const loadAnim = useRef(new Animated.Value(0)).current;

    useEffect(() => {
     animation.current = spring(loadAnim, {
       toValue: loadPercentage,
     }).start(); 
    }, [loadAnim, loadPercentage]);       

    ....
}

Это работает не во всех случаях. В частности, если loadPercentage меняется слишком часто, компонент занимает огромное количество ресурсов. В этом есть смысл, поскольку я создаю новую анимацию для каждого обновления. Вместо этого я хотел бы просто изменить toValue, не запуская новую анимацию или что-то подобное.

Это кажется довольно простым c, но после 4 часов попыток / поиска в Google я сдаюсь. -.-

На всякий случай тоже пробовал использовать react-native-reanimated, но и там не повезло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...