Reanimated 2 — это мощная библиотека анимации для React Native, которая позволяет разработчикам создавать плавные и производительные анимации. В недавнем обновлении метод interpolate() в Reanimated 2 был переименован в interpolateNode(). Это изменение помогает согласовать соглашение об именах с другими методами в библиотеке и улучшить читаемость кода. Если вы переносите свою кодовую базу или начинаете новый проект с помощью Reanimated 2, это руководство проведет вас через процесс перехода от interpolate() к interpolateNode(), попутно предоставляя примеры кода.
Методы перехода от interpolate() к interpolateNode():
- Основное использование:
Метод interpolateNode() работает аналогично interpolate(). Вот пример использования interpolateNode() с простой анимацией:
import { useSharedValue, interpolateNode } from 'react-native-reanimated';
const progress = useSharedValue(0);
const animatedValue = interpolateNode(progress, {
inputRange: [0, 1],
outputRange: [0, 100],
});
// Use the animatedValue in your animation
- Режимы экстраполяции.
В interpolate() вы можете указать поведение экстраполяции, используя параметрыextrapolateиextrapolateLeft/extrapolateRight. С помощью interpolateNode() вы можете добиться того же, используя параметрconfig:
const animatedValue = interpolateNode(progress, {
inputRange: [0, 1],
outputRange: [0, 100],
extrapolate: 'clamp', // or 'extend', 'identity', 'identity'
});
- Объединение интерполяций.
Вы можете объединить несколько вызовов interpolateNode() для создания более сложной анимации:
const animatedValue1 = interpolateNode(progress, {
inputRange: [0, 1],
outputRange: [0, 100],
});
const animatedValue2 = interpolateNode(animatedValue1, {
inputRange: [0, 100],
outputRange: [0, 200],
});
// Use animatedValue2 in your animation
- Пользовательские функции замедления.
Reanimated 2 также поддерживает пользовательские функции замедления с помощью параметраeasing:
import { Easing } from 'react-native-reanimated';
const animatedValue = interpolateNode(progress, {
inputRange: [0, 1],
outputRange: [0, 100],
easing: Easing.bezier(0.25, 0.1, 0.25, 1), // Use custom easing function
});
// Use the animatedValue in your animation
Переход от interpolate() к interpolateNode() в Reanimated 2 — простой процесс. Следуя примерам, приведенным в этом руководстве, вы сможете легко обновлять свою кодовую базу и продолжать создавать плавную и производительную анимацию в своих проектах React Native.
Не забудьте обновить импорт, заменить interpolate() на interpolateNode() и при необходимости настроить любые другие соответствующие параметры. Благодаря улучшенному названию и функциональности Reanimated 2 вы сможете поднять свою анимацию на новый уровень.