Как я могу оживить мгновенно в React родной - PullRequest
0 голосов
/ 06 июля 2019

Я начинаю анимировать, используя 'onPanResponderMove', чтобы перемещать анимированный вид, когда пользователь удерживает нажатой кнопку

onPanResponderMove: (evt, gestureState) => {
  if (withinbounds(gestureState.moveX, xOffset + buttonSize, xOffset + buttonSize * 2)) {
    this.setState({y: this.state.y + 1});
    Animated.timing(
    this.state.layerOffset,
    {toValue: {x: 0, y: (this.state.y * gridSize}, easing: Easing.in(Easing.ease)},
  ).start();
  }
}

Который используется для установки смещения вида

<Animated.View style={{position: 'absolute', left: this.state.layerOffset.x, top: this.state.layerOffset.y}}>
  <Grid  />
</Animated.View>

Однако, как это работает в настоящее время, анимированный вид не будет двигаться, пока кнопка не перестанет нажиматься, как я могу заставить анимацию запускаться немедленно, вместо того, чтобы ждать, пока кнопка больше не будет нажата, хотя это. state.y постоянно обновляется.

1 Ответ

1 голос
/ 06 июля 2019

При игре с PanResponder обычно используется Animated.event вместо Animated.timing. Вот некоторые документы , которые могут вам помочь.

При использовании Animated.timing вы должны указать продолжительность, которую вы не сделали в этом случае. Разница между ними заключается в том, что Animated.timing изменит значение в течение определенного периода времени, тогда как Animated.event мгновенно устанавливает значение, которое вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...