Подтвердить что ты не робот

React Native ListView scrollToEnd не работает

Я использую ListView scrollToEnd, но он не работает, но он работал для scrollTo. Что мне делать, чтобы справиться с этим.

введите описание изображения здесь

введите описание изображения здесь

4b9b3361

Ответ 1

Существует обходное решение, оберните его в setTimeout следующим образом:

componentDidMount() {
  setTimeout(() => {
    this.refs.dateList.scrollToEnd();
  }, 50);
}

Ответ 2

Попробуй это:

<ListView
    ref={ ( ref ) => this.scrollView = ref }
    onContentSizeChange={ () => {        
        this.scrollView.scrollToEnd( { animated: false } )
    } } >
</ListView>

документ

Ответ 3

Рендеринг требует времени, поэтому setTimeout() перед прокруткой до конца будет работать. Однако вы можете использовать метод onLayout().

export default MyComponent extends React.Component {
  constructor(props) {
    super(props)

    this.scrollToBottom = this.scrollToBottom.bind(this)
  }

  scrollToBottom() {
    this.refs.myView.scrollToEnd()
  }

  render() {
    return {
      <ListView
           onLayout={this.scrollToBottom}
           ref='myView'
           ...
      />
   }
 }

Примечание. ListView устарел.