Максимальный размер стека вызовов превышен при попытке анимировать положение и ширину просмотра - PullRequest
0 голосов
/ 26 апреля 2020

Я анимировал свойство ширины и левого вида представления (оба%). Я получаю ошибку превышения размера стека вызовов по любой причине. Я не думаю, что я вызываю функцию более одного раза.

Просмотр:

<Animated.View
  style={StyleSheet.compose(styles.activeSlider, {
    width: this.state.width.interpolate({
      inputRange: [40, 60],
      outputRange: ["40%", "60%"]
    }),
  left: this.state.posLeft.interpolate({
    inputRange: [0, 40],
    outputRange: ["0%", "40%"]
  })
})}
/>

сенсорная функция вызывается из другого представления с помощью onPress

touch() {
  this.setState({
    isLeftEnabled: !this.state.isLeftEnabled
  });
  this.updatePosition();
  Vibration.vibrate(CONSTANTS.BUTTON_VIBRATE_LENGTH); // static var set to 40
}

updatePosition

updatePosition() {
  let w = Animated.timing(this.state.width, {
    toValue: (this.state.isLeftEnabled) ? 40 : 60,
    duration: CONSTANTS.ANIMATION_SPEED,
    easing: Easing.inOut
  });

  let p = Animated.timing(this.state.posLeft, {
    toValue: (this.state.isLeftEnabled) ? 0 : 40,
    duration: CONSTANTS.ANIMATION_SPEED,
    easing: Easing.inOut
  });

  w.start();
  p.start();
}

Состояние:

this.state = {
    isLeftEnabled: true,
    posLeft: new Animated.Value(40),
    width: new Animated.Value(60)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...