ScrollView не отслеживает текущую позицию.При нажатии он сбрасывается обратно в предыдущее место - PullRequest
0 голосов
/ 03 апреля 2019

Этапы проблемы: 1: прокрутить страницу вниз от местоположения x 2: Страница прокручивается до местоположения y 3: отпустить палец 4: пользователь снова нажимает пальцем, чтобы продолжить прокрутку 5: местоположение в ScrollView сбрасывается назадк местоположению x, вызывающему отскок назад и предотвращающему дальнейшую прокрутку

Я попытался найти информацию, относящуюся к реагирующим-модальным и ScrollView, чтобы найти проблему и не могу найти ни одного появления этой

Используемая библиотека: реакция-нативная-модальная

scrollOffset: 0  
scrollViewRef

handleScrollTo = p => {
  if (this.scrollViewRef) {
    this.scrollViewRef.scrollTo(p);
  }
};

    <Modal
      isVisible={this.state.visibleModal}
      onSwipeComplete={() => this.setState({ visibleModal: false })}
      swipeDirection="down"
      scrollTo={this.handleScrollTo}
      scrollOffset={this.state.scrollOffset}
      scrollOffsetMax={400 - 300} // content height - ScrollView height
      style={screenStyles.bottomModal}
      useNativeDriver
    >
      {this._renderModalContent()}
    </Modal>


      // Render modal content (there's a view wrapping this)
      <ScrollView 
        style ={{flex: 8, paddingLeft: '10%', paddingTop: '10%'}}
        ref={ref => (this.scrollViewRef = ref)}
        onScroll={event => {this.state.scrollOffset = event.nativeEvent.contentOffset.y}}
        scrollEventThrottle={16}>
      >
        {Object.keys(balances).map(
            symbol =>
              symbolPriceTicker[`${symbol}USDT`] &&
              COIN_INFO[symbol] &&  (
                <TouchableOpacity
                  key={`c-${symbol}`}
                  style={screenStyles.assetSelector.selector}
                  onPress={() => this.selectAsset(symbol)}
                >
                  <View style={{flexDirection: 'row'}}>
                    <Image
                      style={screenStyles.assetSelector.coinAvatar}
                      source={COIN_INFO[symbol] ? COIN_INFO[symbol].avatar_32 : null}
                    />
                    <Text style={screenStyles.assetSelector.coinName}>
                      {COIN_INFO[symbol].name}
                    </Text>
                  </View>
                </TouchableOpacity>
              ),
          )}
      </ScrollView>

1 Ответ

0 голосов
/ 03 апреля 2019

Это может быть проблема с реквизитом в модели, которая связана с прокруткой.

когда вы используете ScrollView внутри Model, при условии, что вам необходим отклоняемый вид прокрутки

Пожалуйста, проверьте образец, связанный с этим: https://gist.github.com/mmitchellgarcia/6ee4d5b5c79162e3cc13b67d743777e6#file-dismissablescrollview-js

Для более: https://github.com/react-native-community/react-native-modal/issues/109

Надеюсь, это поможет

...