Обнаружение, когда Swipable Mounts, поэтому может сделать начальную подсказку движения

Я пытался сделать подсказку движения на креплении Swipeable - https://kmagiera.github.io/react-native-gesture-handler/docs/component-swipeable.html

Что я делаю прямо сейчас, это получаю ref к Swipeable тогда я звоню ref.openRight() тогда setTimeout(ref.close, 300). Однако я не могу этого сделать, покаSwipeableмонтирует. Я думал, что реф. Должен срабатывать, когдаSwipableмонтирует, поэтому я поместил туда этот код открытия / закрытия, но это слишком рано. Вот мой код:

import Swipeable from 'react-native-gesture-handler/Swipeable';

class MySwipeable {

  didInitiallyBounce = false;

  sRef = n => {
     if (!this.didInitiallyBounce && n) {
       this.didInitiallyBounce = true;
       n.openRight();
       setTimeout(() => n.close(), 300);
     }
  }

  render() {
     return <Swipeable ref={this.sRef} />
  }

}

Так что это не работает, потому что это происходит слишком рано. Есть идеи, как это сделать?

Я нашел хакерский способ сделать это, чтобы посмотреть состояние:

     if (!this.didInitiallyBounce && n) {
       this.didInitiallyBounce = true;
       const doit = () => {
         if (n && n.state.rowWidth) {
           n.openRight();
           setTimeout(() => n.close(), 300);
         } else {
           setTimeout(doit, 16);
         }
       }
       doit();
     }

Что это значит, он ждет n.state.rowWidthперейти от неопределенного к числу. Затем он делает анимацию. Это работает, но это взломано.

Есть идеи получше?

0 ответов

Другие вопросы по тегам