React-Native Parse ListView onEndReached无法按预期工作

时间:2016-01-12 00:49:02

标签: parsing listview react-native

我遇到了使用ListView组件进行无限滚动的问题。这是我的列表元素:

const dataSource = this.state.dataSource.cloneWithRows(this.getDataSource())

<ListView
    onEndReached={this.onEndReached.bind(this)}
    onEndReachedThreshold={5}
    onScroll={this.onScroll.bind(this)}
    dataSource={dataSource}
    renderRow={this.renderRow.bind(this)}
    automaticallyAdjustContentInsets={false} />

我的onEndReached()代码:

onEndReached() {
if (this.state.hasScrolled) {
  const dataSource = this.state.dataSource.cloneWithRows(this.getDataSource())

  this.setState({
    offset: this.state.offset + this.state.limit,
    dataSource
  })
}

}

getDataSource():

getDataSource() {
let dataSource = []

if (this.state.messages && this.state.messages.length) {
  this.state.messages.map((message) => {
    dataSource.push(message)
  })
}

return dataSource

}

但是当我测试这段代码并到达底部时。在我第三次触发onEndReached()之前它没有做任何事情,然后在那时它将偏移设置为高于预期的数字。我尝试使用诸如isLoaded之类的标志来防止onEndReached()多次被触发,但如果我这样做,则列表不会刷新新内容。

提前致谢!

0 个答案:

没有答案