Как лучше всего запускать событие по завершении Animated.spring?
Animated.spring(this.state.pan, {
toValue: 0
}).start()
Я искал довольно много и не нашел ни одного способа сделать это. Я мог бы использовать addListener, чтобы проверить, достигла ли анимация конечного значения или тайм-аута, но они оба кажутся уродливыми исправлениями того, что должно быть очень простым.
Кто-нибудь знает?
react-native
Август Бьорнберг
источник
источник
.start(console.log("Start Animation")
будет "срабатывать" только в начале анимации из-за побочного эффекта. Функционально это то же самое, что иconsole.log("Start Animation"); Animated.timing(...).start(..)
. Это не намеренное использование метода. Пожалуйста, не используйте это.start()
принимает обратный вызов, когда анимация заканчивается, и все.По сути, есть эти три подхода, чтобы что-то делать после завершения анимации. Во-первых: вы можете использовать обратный вызов, переданный в метод call (обратного вызова). Во-вторых: вы можете использовать stopAnimation, который также принимает обратный вызов. Третий: Мой предпочтительный способ, заключающийся в размещении слушателя на анимированном значении и выполнении каких-либо действий на основе текущего значения. Например, вы можете сделать перевод от 0 до 150 и на основе значения, которое вы анимируете, скажем «движение», и когда движение достигнет значения, вы можете что-то выполнить.
Подробнее на👉 https://www.youtube.com/channel/UCl5-W0A8tE3EucM7E_yS62A
источник