【发布时间】: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