我在一个ScrollView组件中有3ListView个组件,如下所示:

<ScrollView>
  <Header />
  <ListView onEndReached={() => alert('load more 1')}/>
  <ListView onEndReached={() => alert('load more 2')}/>
  <ListView onEndReached={() => alert('load more 3')}/>
  <Footer />
</ScrollView>

Header组件有一些常见的内容,也有3个选项卡,它们触发显示相应的ListView

问题是any ListView with onEndReached={() => alert('load more 1')}永远不会运行alert ,所以当我向下滚动并点击listview的末尾时,我永远无法加载更多alert .移除包装ScrollView,alert 就会运行,但公共Header不会滚动,因为我们刚刚移除了包装ScrollView.标题需要与listview一起滚动,这就是为什么我将所有需要滚动的内容都包装在ScrollView中.

IMPORTANT NOTE:

正在寻找这个问题的解决方案,其中Header与ListView一起滚动,onEndReached与visible ListView一起触发.

推荐答案

我认为加载列表头中的三个不同元素是为了解决这个问题.

getInitialState() {
    return {
        currentList: this.ds.cloneWithRowsAndSections(INITIAL_DATA);
    }
},
render() {
    return <ListView renderHeader={this._renderHeader} dataSource={this.state.currentList}/>
}

您不想这样做的唯一原因是,如果您想在三个子列表视图中保持滚动位置,但这不会有用,因为您总是必须滚动到顶部才能更改您正在查看的列表视图.

然后,在_renderHeader函数中,您将呈现一个 Select 器,该 Select 器根据所选的标题用不同的数据填充currentList.

React-native相关问答推荐

在 React Native 中打开后日期 Select 器不关闭

React Native Navigation const { navigate } = this.props.navigation;

需要以前的props和state回调的静态 getDerivedStateFromProps?

React Native:在ScrollView中更改焦点时键盘关闭

React-native -run-ios 错误无法构建 iOS 元素.我们运行了xcodebuild命令,但它以错误代码 65 退出

如何在 React Native 的无状态功能组件中扩展原生组件的 props TypeScript 接口?

在 React Native 中使用多个上下文提供程序的更好方法

React Native 使视图 Hug键盘顶部

Typescript:onPress 类型

react native如何访问文件系统?

我可以将标题传递给图像源吗?

react-native run-android 构建错误':app:generateDebugBuildConfig'

如何在不使用 JSX 的情况下在 React Native 中制作组件?

TypeError : props.navigation.getParam 不是函数. In(props.navigation.getParam('name')

React Native 动画 - zoom 时 translateX 和 translateY

如何在自定义组件上使用 onPress?

动态改变 React Native Flat List 中的列数

如何在react-native中绘制虚线边框样式

如何在 React Native 的 MapView 中设置标记

发布未使用 JavaScript 代码更新的 APK