FlatList 组件生命周期方法 ScrollToIndex ScrollToEnd 等

2023-11-25

我正在使用新的FlatList成分并想利用ScrollToIndex (or ScrollToEnd)在生命周期方法中,例如componentDidMount.

我有一个包含 100 个项目的数组,我不想从第一个项目开始渲染,而是从一开始就开始渲染。让我们说第 50 项。当。。。的时候FlatList一次只显示一项,它可以通过一些 hack 来按需要工作,如下所述:https://github.com/facebook/react-native/issues/13202

componentDidMount() {
  let wait = new Promise((resolve) => setTimeout(resolve, 500));  // Smaller number should work
  wait.then( () => {
    this.refs.flatlist.scrollToIndex({index: 4, animated: true});
  });
}

这个片段使scrollToIndex run after调用的几毫秒componentDidMount.

但是当我使用FlatList当视图包含 3x3 网格时,我根本无法让它运行。当我使用scrollToIndex并且索引超出了指定的 propsinitialNumToRender,我只得到一个错误scrollIndex out of range $ID我无法理解。所提供的数据数组包含所有项目,例如 100 个项目。当我让我们scrollToEnd,它只停止在中间的某个地方,而不是结束。对我来说,它看起来像是某种错误,我不知道如何在初始渲染后滚动到 $X 项目。你能帮助我吗?

我很感激任何形式的帮助或评论。

我在 iOS 和 Android(模拟器和设备)上尝试了 React-Native v0.43.0 和 v0.44.0,结果总是一样的。


您是否正在设置getItemLayoutFlatList 上的 prop?

检查 React Native 代码中的内容scrollToIndex - https://github.com/facebook/react-native/blob/master/Libraries/Lists/FlatList.js#L308

不过,只有当您的物品具有设定的高度时,这才真正起作用。对于高度可变的项目似乎还没有合适的解决方案。我只能通过设置使其与可变高度一起工作initialNumToRender={indexToScrollTo + 1}然后使用scrollToOffset代替scrollToIndex(将偏移设置为您要滚动到的项目的偏移)。这有明显的性能问题,如果您有很长的列表或您的项目具有复杂的渲染,那么这确实不理想。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FlatList 组件生命周期方法 ScrollToIndex ScrollToEnd 等 的相关文章

  • React-Native 本机 Android 模块 - Toast 示例

    我正在尝试学习使用 android 本机模块并使用react native 文档中的 toast 示例 https facebook github io react native docs native modules android ht
  • React Native 中的发布模式诊断

    有没有办法让React Native输出所有console log呼叫同一个地方NSLog goes 有没有办法让我看到输出console log在发布模式下 如果没有 是否有一个 NSLog helper for React Native
  • 这里是反应本机移动应用程序中的地图集成

    我正在尝试在react native项目中实现heremap api 搜索时得到了https www npmjs com package react native heremaps https www npmjs com package r
  • 抽屉导航中未定义不是一个函数(评估“(0,_reactNavigation.stacknavigator)”)

    在我的应用程序中 我需要抽屉导航 为此我使用来自的示例代码this https aboutreact com react native navigation drawer 我已将所有内容集成到我的应用程序中 但出现以下错误 undefine
  • Scrollview onEndReached 内的 Flatlist

    我在动画 ScrollView 中有一个 Flatlist Flatlist 实现了 onEndReached 阈值设置为 0 5 我面临的问题是 onEndReached 不断触发 甚至没有滚动 我有一个带有正文的文章视图 我想在用户到达
  • 尝试添加 mailto - 反应本机

    Mailto 似乎无法正常工作 所发生的情况是图标似乎被按下 但没有发生任何操作 发出此警告 Warning Code
  • 如何添加文本输入以在本机反应中发出警报

    有人可以帮助在本机反应中将文本输入添加到警报中吗 是否可以 我搜索并发现处理多行文本输入的结果 但我的情况并非如此 提前致谢 这个有可能 我相信这最初仅适用于 AlertIOS 但它似乎已集成到 React Native Alert 中 编
  • 是什么原因导致本机反应缓慢?

    在下面的代码中 第一条 console log 消息几乎立即打印 然后一切都挂起 我最初假设它正在等待返回响应正文 响应的正文只有大约 26K 等待的时间似乎是不确定的 除非我摇动手机并与调试菜单交互 一旦我与调试菜单交互 承诺就会解决 一
  • borderRadius 未应用于 FlatList

    我有一个 FlatList 每当有人在 TextInput 中输入文本时就会显示它 我面临的问题是 borderRadius 适用于 iOS 但不适用于 Android 请参阅我的意思https gitlab com narcis11 jo
  • 如何使用多重身份验证 - firebase?

    我有一个注册屏幕 其中包含 用户名 电子邮件 电话号码 密码 在本例中 我使用电话号码身份验证来验证号码 因此在用户验证他的号码后 我将他的数据保存到 firebase DB 中 所以在那之后 我将下摆导航到登录屏幕 应该包含电子邮件 密码
  • 无法在react-native android中设置ShadowColor

    环境 环境 操作系统 macOS High Sierra 10 13 1 节点 8 9 1 纱线 0 17 10 npm 5 6 0 守望者 4 7 0 Xcode Xcode 9 2 内部版本 9C40b Android Studio 2
  • 如何在每个测试中更改笑话模拟函数的返回值?

    我的组件测试文件中有一个像这样的模拟模块 jest mock magic index gt navigationEnabled gt true guidanceEnabled gt true 这些函数将在我的组件的渲染函数中调用 以隐藏和显
  • 检查 `MaterialTopTabNavigator` 的渲染方法

    我想创建一个顶部选项卡导航器 并将两个屏幕 Badges js 和 Studying js 放入选项卡中 当我在设备上运行它时 出现错误 错误 元素类型无效 需要字符串 and 检查 MaterialTopTabNavigator 的渲染方
  • 无法解析模块@react-native-async-storage/async-storage

    将 aws amplify 添加到项目后出现此错误 根据文档完成了 aws amplify 的设置 然后 pod install 和 react native run ios 我也尝试过更改下面错误建议中提到的导入语句 但仍然不起作用 提前
  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • react-native run-android 失败并出现错误:任务 ':app:dexDebug' 执行失败

    我使用的是 Windows 8 1 和react native cli 1 0 0 and react native 0 31 0 添加后react native maps对于该项目 我运行了命令react native upgrade并给
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • React Native:相机流的多个预览

    我有一个要在 Android 和 iOS 中开发的 React Native 应用程序 我想在其中获取相机流 进行一些处理 然后多次渲染它 想象一下像 Instagram 这样的应用程序 您可以在其中实时向相机添加滤镜 并在实时预览中显示应
  • 无法解析“反应导航”

    当我安装并尝试使用react navigation 从 react navigation 导入 StackNavigator 时 我正在尝试react native并出现以下错误 Error https i stack imgur com
  • React-native iOS 不显示图像(pod 问题)

    我正在我的react native应用程序中安装一个包 具体来说 它是来自react navigation的createMaterialTopTabNavigator 但安装成功后 出现崩溃 错误 react navigation mate

随机推荐

  • 如何在 Django 模板中使用 Jquery/Ajax 正确刷新 div

    我尝试过实施该解决方案here 但我似乎无法让它正常工作 我有一个 div 它是使用 Django 模板内的循环填充的 就在其下方 有一个输入框 我可以在其中输入一些文本 然后单击 提交 Submit 操作应该触发一个 Jquery 脚本
  • Spring安全Java配置

    我正在尝试使用 JavaConfig 而不是 Spring Security 的 XML 配置 我想用 PreAuthorization用于声明访问权限 我的 Spring 安全配置如下所示 Configuration EnableWebS
  • 在 Django 管理中编辑组对象时将用户对象分配给组

    在用户对象 编辑用户 的默认 Django 管理视图中 可以编辑用户的组成员身份 如果我也想反过来怎么办 IE 在群组编辑页面中 可以选择属于正在编辑的群组的用户 正如我所看到的 Django 没有从 Group 到 User 对象的 Ma
  • 将外键作为主键可以吗?

    我有两张桌子 用户 用户名 密码 个人资料 个人资料 ID 性别 出生日期 目前我正在使用这种方法 每个配置文件记录都有一个名为 userId 的字段 如下所示外键它链接到用户表 当用户注册时 会自动创建他的个人资料记录 我对我朋友的建议感
  • Symfony2 中的路由:可选参数 en 四个 url 用于一个路由

    在我的 Symfony2 应用程序中 我希望通过一条路由可以实现四个 url 很多其他的东西 报告 20 负数 很多其他的东西 报告 40 正数 很多其他的东西 报告 无号码 很多其他的东西 报告 没有数字 也没有 我的路线目前如下所示 r
  • WPF ListView 始终显示完整项目

    我有一个带有多个 ListView 控件的应用程序 其中要求 ListView 中的项目必须完全可见 列表中永远不应该显示部分 ListViewItem 如果用户在最终显示部分项目的位置释放 ScrollViewer 则列表应 捕捉 并自行
  • 如何使用 Apple SDK 以编程方式检测并连接到 Wifi 网络

    我想知道如何以编程方式检测并连接到 Wifi 网络 就像 Apple Store 中的 WifiFoFum 应用程序一样 该应用程序已获得批准并最近更新 因此必须有合法的方式来执行此操作 如果有人知道任何方法 请发布一个代码片段 即使它是一
  • CustomValidator ServerValidate 方法不触发

    我已经放了一个CustomValidator在我的表格上 我还没有设置它ControlToValidate财产 在其ServerValidate事件我写了以下内容 protected void CustomValidator1 Server
  • 从 ListView 中删除所选项目

    如何从列表视图中删除选定的项目 foreach ListViewItem eachItem in listView1 SelectedItems listView1 Items Remove eachItem 其中 listView1 是列
  • x86 上成功的未对齐访问的实际效果是什么?

    我总是听说未对齐的访问很糟糕 因为它们会导致运行时错误并使程序崩溃或减慢内存访问速度 然而 我找不到任何关于它们会减慢速度的实际数据 假设我在 x86 上并且有一些 但未知 未对齐访问的份额 实际上可能的最严重的减速是什么 在不消除所有未对
  • 为什么 == 在比较使用相同 int 值装箱的两个对象类型变量时不起作用

    在尝试用 C 实现一个简单的单链表时 我注意到 在比较用 int 值装箱的两个对象类型变量时不起作用 但是 Equals works 想检查一下为什么会这样 下面的代码片段是通用对象类型数据属性 public class Node
  • 对 PySpark DataFrame 进行分组后如何应用描述函数?

    我想找到最干净的方法来应用describe函数到分组的 DataFrame 这个问题也可以扩展到将任何 DF 函数应用于分组的 DF 我测试了分组聚合 Pandas UDF 但没有成功 总有一种方法可以通过将每个统计数据传递到agg功能 但
  • 使用 QWebChannel 时未定义的属性和返回类型

    基于QT QWebEnginePage setWebChannel 传输对象 and Qt 无法从 javascript 调用共享对象方法 属性我尝试制作一个小演示来测试功能 请参阅下面的基本测试代码 我的问题是 在新 QWebChanne
  • in_array 与 strpos 在 php 中的性能对比

    我通过 Windows 身份验证登录用户 然后将该用户的权限存储在会话变量中 我在数据库中使用分隔权限存储方法 即 rights retrieved from database read edit delete admin 所以我的问题是我
  • 获取集合的所有子集

    我正在尝试创建一个返回集合的所有子集的方法 例如 如果我有集合10 20 30我想得到以下输出 return new List
  • 如何将高度超过视口的固定div粘贴到body上

    我知道div的定位 固定 绝对和相对 我可以将一个固定的 div 附加到 body 上 以便在滚动 body 时它会粘在相同的位置 我在这里问一个稍微不同的问题 我有一个侧边栏 其高度超过视口的高度 我希望它固定在主体上 滚动 body 时
  • 子串索引范围

    Code public class Test public static void main String args String str University System out println str substring 4 7 Ou
  • 直接从 Java 调用 GWT RPC 服务

    有没有一种简单的方法可以直接从 Java 代码调用 GWT RPC 服务端点 我的意思是真正的 Java 代码 而不是编译成 javascript 的 Java 代码 我问这个问题是因为我们想要针对 GWT RPC 接口运行性能基准测试 压
  • WCF 服务未反序列化枚举值

    我构建了一个 WCF 服务 其中有一个部分如下所示 ServiceContract public class Service OperationContract public SomethingElse Method Code a para
  • FlatList 组件生命周期方法 ScrollToIndex ScrollToEnd 等

    我正在使用新的FlatList成分并想利用ScrollToIndex or ScrollToEnd 在生命周期方法中 例如componentDidMount 我有一个包含 100 个项目的数组 我不想从第一个项目开始渲染 而是从一开始就开始