react-native – React Native getItemLayout

我正在实现一个SectionList,显示需要滚动到当前周的周数列表,因此我使用的是initialScrollIndex.

我面临的问题是我真的不明白给我的_getItemLayout索引是什么?
有时数据[index] === undefined,这对我来说没有意义.

我需要知道它是哪个部分(data [?]),因为每个部分包含该周事件的另一个SectionList,因此height不是常量.

_getItemLayout = (data, index) => {
  const rows = (data[index] === undefined) ? 1 : data[index].data.reduce((sum, value) => value.data.length + sum, 0);
  const height = (rows * 94);
  return {
    length: height,
    offset: height * index,
    index
  };
}

最佳答案 它已经很久了,但是对于未来的读者来说,想要分享一些信息.

有一篇很好的文章解释了getItemLayout,请找到它here

我还将数据[index]视为未定义.原因是索引的计算是考虑section.data.length 2(1表示节标题,1表示节页脚),你可以找到代码here (RN-52).

使用SectionList,我们在处理索引时必须非常小心.

点赞