反应原生:如何聆听元件位置?
问题描述:
我试图玩不同的位置回调,但没有符合我的需求。反应原生:如何聆听元件位置?
- onLayout不更新
- 措施()与setInterval的太重
- onPanResponderMove块子手势
我想导航过渡期间获取的场景组成的地位。
更确切地说,这是一个样本:https://rnplay.org/apps/53SXZg。如何检索拖动的场景位置?
答
找到它使用NavigationTransitionner
的NavigatorExperimental
。谢谢你。倾听transitionProps.position AnimatedValue:
_render(transitionProps: NavigationTransitionProps,): React.Element<any> {
const scenes = transitionProps.scenes.map((scene) => {
const sceneProps = {
...transitionProps,
scene,
};
return this._renderScene(sceneProps);
});
// Add position listener
if(!this.positionListener){
this.positionListener = transitionProps.position.addListener(({value}) => {
console.log('value', value);
});
}
return (
<View style={styles.navigator}>
{scenes}
</View>
);
}
如果您正在使用'Animated',您不能在事件侦听器添加到该值时更改吗? https://facebook.github.io/react-native/docs/animated.html#addlistener – jered
谢谢,我使用经典的Navigator.SceneConfigs和自定义的手势来拖动/滑动场景。我需要检索拖动中的场景位置。我发现的唯一方法是测量()它和父组件上的回调。使用setInterval并且它太耗费和肮脏。我不知道我怎么可以添加一个监听器(与动画,但在哪里?)。这篇文章(http://*.com/questions/37350129/react-native-navigationexperimental-animations)讨论NavigatorExperimental上的进度道具,但我很难理解它,并不确定它会回调位置...... – sebap