Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I get the value from an animated or interpolated value in React Native?

Short answer is: with addListener. Every animated variable has addListener() method accessible. Right? We should NOT access it from __getValue().


I was struggling to get the interpolated value (number) out of this const:

const interpolatedvalue = this.state.myanimvalue.interpolate({...})

I wanted to get the numeric value out of this interpolatedvalue. I was trying to use __getValue(), but I realized I should not do that.

like image 817
ofundefined Avatar asked Dec 23 '22 23:12

ofundefined


2 Answers

You can simply access the value as console.log(interpolatedValueY.__getValue())

like image 90
kreysix Avatar answered Dec 25 '22 23:12

kreysix


Updated

The right way of getting the value for an animated value is with a listener.

https://reactnative.dev/docs/0.5/animatedvalue#addlistener

Because the official docs say:

addListener(...) Adds an asynchronous listener to the value so you can observe updates from animations. This is useful because there is no way to synchronously read the value because it might be driven natively.

If the animation is driven by the native layer, we can not really get it synchronously. So let's always use addListener(value => {/*our logic to use value*/}).

like image 43
ofundefined Avatar answered Dec 26 '22 00:12

ofundefined