React native ListView';在视图中时,s ONEDREACH不工作

React native ListView';在视图中时,s ONEDREACH不工作,react-native,react-jsx,React Native,React Jsx,事情是这样的。 我想呈现一个listview,它在ONEDreach时更新数据 当数据更新时,我想在列表下方呈现一个“加载”文本(不删除列表)。像这样: render() { var {isFetching} = this.props.query var loading if(isFetching){ loading = this.renderLoading() } return ( <ListView dataSource={thi

事情是这样的。 我想呈现一个listview,它在ONEDreach时更新数据

当数据更新时,我想在列表下方呈现一个“加载”文本(不删除列表)。像这样:

render() {
  var {isFetching} = this.props.query
  var loading
  if(isFetching){
    loading = this.renderLoading()
  }
  return (
      <ListView
        dataSource={this.dataSource}
        renderRow={this.renderItem}
        onEndReached={this.props.fetchNextPage}
        onEndReachedThreshold={10}
        style={styles.listView} />
      {loading}
  )
}
renderLoading () {
  return (
    <View style={styles.loading}>
      <ActivityIndicatorIOS
        size='large'/>
      <Text>
        Loading books...
      </Text>
    </View>
  )
}
render(){
var{isFetching}=this.props.query
无功负荷
如果(正在获取){
加载=this.renderLoading()
}
返回(
{加载}
)
}
渲染加载(){
返回(
正在加载书籍。。。
)
}
但很快我意识到渲染函数必须返回单个元素。所以我试了一下:

return (
    <View>
      <ListView
        dataSource={this.dataSource}
        renderRow={this.renderItem}
        onEndReached={this.props.fetchNextPage}
        onEndReachedThreshold={10}
        style={styles.listView}/>
      {loading}
    </View>  
  )
返回(
{加载}
)
但是,一旦安装完毕,OnedRached就一次又一次地开火。甚至在我触摸屏幕之前


如何在保持“无限滚动”行为的同时实现加载视图?

我最终使用了一种解决方法。我将加载视图呈现为listView的页脚

不需要将其呈现为listView页脚。尝试指定换行视图样式:{flex:1}:

return (
    <View style={{flex: 1}}>
      <ListView
        dataSource={this.dataSource}
        renderRow={this.renderItem}
        onEndReached={this.props.fetchNextPage}
        onEndReachedThreshold={10}
        style={styles.listView}/>
      {loading}
    </View>  
  )
返回(
{加载}
)

您可以尝试为ListView指定一个高度(例如:高度:300)

列表反复呈现的可能原因之一可能是此处的
onEndReachedThreshold={10}
的值

对于大于或等于1的值,将在调用render后立即调用ONEDRACHED中的方法


设置一个值,比如说0.5,这意味着当滚动当前列表的一半时,将调用
onEndReached
方法

OneDreached仍然一次又一次地被解雇,也许我不清楚。在renderFooter()方法中移除封闭对象并呈现所需内容