【问题标题】:Auto scrollToIndex FlatList doesn't work in long listsAuto scrollToIndex FlatList 在长列表中不起作用
【发布时间】:2022-11-14 23:47:00
【问题描述】:

我有一个按索引自动滚动 FlatList 的实现。当索引大于 40-45 时,自动滚动不起作用。在 1-39 索引上 - 自动滚动效果很好。 顺便说一句:当我试图在按下时滚动相同的行为时,最多只能索引 39 个。

我的部分代码:

const [dataUpdated, setDataUpdated] = useState(false);
const [itemIn, setItemIn] = useState(-1);

useEffect(() => {
    if (selectedItem.id.length > 0) {
      setItemIn(items.map(object => object.itemId).indexOf(selectedItem.id));
    } else {
      setItemIn(0);
    }
  }, [items, selectedItem.id]);

 const listRef = useRef<FlatList>(null);

useEffect(() => {
    let screenListener = true;
    setTimeout(() => {
      if (itemIn >= 0 && screenListener) {
        setDataUpdated(!dataUpdated);
        listRef?.current?.scrollToIndex({
          animated: true,
          index: itemIn,
        });
      }
    }, 500);
    return () => {
      screenListener = false;
    };
  }, [dataUpdated, itemIn]);

 <ItemsList
          data={items}
          onItemPressed={onItemPressed}
          selectedItem={selectedItem}
          setSelectedItem={setSelectedItem}
          refIt={listRef}
          onScrollToIndexFailed={() => {}}
          extraData={dataUpdated}
        />

【问题讨论】:

    标签: react-native react-native-flatlist flatlist react-flatlist


    【解决方案1】:

    我找到了方法——Shopify 的 FlashList 完美地处理了这种滚动

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-06
      • 2021-07-04
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 2019-02-17
      相关资源
      最近更新 更多