Ego*_*r T 3 ios reactjs react-native react-native-ios react-native-maps
region: new MapView.AnimatedRegion({
longitude: 4.70821527747714,
latitudeDelta: 1.384276459048536,
latitude: 43.31340937725116,
longitudeDelta: 2.066803805399701,
});
....................
....................
this.state.region
.timing({
latitude: region.latitude._value,
longitude: region.longitude._value,
latitudeDelta: 0.5,
longitudeDelta: 0.5,
})
.start();
this.setState({
zoomLevel: 8,
regionUpdated: true,
});
Run Code Online (Sandbox Code Playgroud)
这就是我在react-native中使用的。
我想在动画结束后调用setState函数。但是现在,它在动画过程中被调用。
我认为如果动画功能是Promise功能会很棒。但我不确定。
我怎么解决这个问题?
小智 5
该timing函数返回一个Animated值实例。Animated的start方法接受动画完成时将调用的完成回调。因此,您可以这样做:
this.state.region.timing(config).start(() =>
this.setState({
zoomLevel: 8,
regionUpdated: true,
}),
);
Run Code Online (Sandbox Code Playgroud)
参考:
https://facebook.github.io/react-native/docs/animated.html#working-with-animations https://github.com/airbnb/react-native-maps/blob/master/lib/components/AnimatedRegion .js#L140
| 归档时间: |
|
| 查看次数: |
678 次 |
| 最近记录: |