react native: как слушать позицию компонента?

Я пытался играть с различными видами обратного вызова позиции, но ничего не соответствует моим потребностям.

  • onLayout не обновляется
  • мера () с setInterval слишком тяжелая
  • onPanResponderMove блокирует дочерние жесты

Я хочу получить положение компонента сцены во время перехода навигатора.

Чтобы быть более точным, вот пример : https://rnplay.org/apps/53SXZg . Как восстановить позицию перетаскиваемой сцены?

1 ответ

  1. Нашел ее использование NavigationTransitionnerNavigatorExperimental. Спасибо, Джеред. Прослушивание transitionProps.позиция 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>
      );
    }