React Native ListView onEndReached donds';我没打电话

React Native ListView onEndReached donds';我没打电话,listview,react-native,Listview,React Native,我想实现无限滚动,所以我在我的ListView标签中这样做 renderRow(data){ return ( <CardSection> <Text> {data.id} </Text> </CardSection> ); } <ListView dataSource={this.dataSource}

我想实现无限滚动,所以我在我的ListView标签中这样做

renderRow(data){
    return (
        <CardSection>
            <Text>
                {data.id}
            </Text>
        </CardSection>
    );
}

<ListView 
    dataSource={this.dataSource}
    renderRow={this.renderRow}
    onEndReached = {this.loadMoreNews.bind(this)}
    pageSize = {5}
/>
renderRow(数据){
返回(
{data.id}
);
}
我在loadMoreNews()和componentWillMount中调用的每个获取操作都会得到5个数据。因为前5个数据并没有填满整个屏幕,我希望ONEDREACHED会被自动调用,因为它已经在ListView的末尾了,但它没有

我尝试将renderRow中的文本标记样式设置为

renderRow(data){
    return (
        <CardSection>
            <Text style={{height:100}}>
                {data.id}
            </Text>
        </CardSection>
    );
}
renderRow(数据){
返回(
{data.id}
);
}
我想怎么做就怎么做。如果我的应用程序在宽屏设备上运行,恐怕我的renderRow无法填满整个屏幕

是ListView的行为还是我遗漏了什么?解决办法是什么?我真的不想强迫我的组件太大,所以它总是占据整个屏幕

onEndReached?:函数

在呈现所有行并滚动列表时调用 在底部的一至三分之一范围内。本机滚动事件 提供

除非用户滑动listview(宽屏幕场景),否则不会自动调用它

您可能需要在不到达屏幕底部的情况下触发OneDreached

onEndReachedThreshold:编号

调用onEndReached的阈值(虚拟,非物理)

或者,当您的屏幕没有被行完全覆盖时,您可以手动调用
loadMoreNews()
。为此,只需测量CardSection组件的高度,并将
尺寸分割。获取('window')。高度
到该值,即可获得可放入当前屏幕的CardSection组件的编号


如果您的行没有可以知道的固定高度,您可以使用函数。

您可以将组件contentsize与设备的高度进行比较,并调用loadMoreNews fn

const deviceHeight = Dimensions.get('window').height;

<ListView 
   dataSource={this.dataSource}
   renderRow={this.renderRow}
   onLayout={(event) => {
      var layout = event.nativeEvent.layout;
      if(layout.height < deviceHeight) this.loadMoreNews()
   }}
   onEndReached = {this.loadMoreNews.bind(this)}
   pageSize = {5}
/>
const deviceHeight=Dimensions.get('window').height;
{
var布局=event.nativeEvent.layout;
如果(layout.height