gpt4 book ai didi

reactjs - 无法使用useRef钩子(Hook)访问React Native中的scrollToIndex()方法

转载 作者:行者123 更新时间:2023-12-03 14:02:40 24 4
gpt4 key购买 nike

我正在尝试使用功能组件中的 useRef Hook 从 FlatList 访问 scrollToIndex() 方法或 scrollToItem() 方法。我希望能够在我的组件中使用 flatListRef.current.ScrollToIndex(),类似于基于类的组件使用 this.flatListRef.ScrollToIndex() 的方式:

 const flatListRef = useRef(React.createRef)
<FlatList
data={items}
renderItem={({ item }) => <Item item={item} />}
keyExtractor={item => item.id.toString()}
contentContainerStyle={styles.card}
horizontal={true}
showsHorizontalScrollIndicator={false}
ref={flatListRef}
/>

console.logging flatListRef.current 没有显示我正在寻找的上述方法。

最佳答案

您不需要使用 createRef 创建引用,只需使用 useRef() 即可。另一件重要的事情是正确使用scrollToIndex。请参阅documentation和下面的代码。

代码:

const CustomFlatList = () => {
const flatListRef = useRef(); // useRef
return (
<View>
<FlatList
data={items}
renderItem={({ item }) => <Text style={{width: 100}}> {item.id} </Text> }
keyExtractor={item => item.id.toString()}
contentContainerStyle={styles.card}
horizontal={true}
showsHorizontalScrollIndicator={false}
ref={flatListRef} // create ref
/>
<TouchableHighlight onPress={() => flatListRef.current.scrollToIndex({index: 4, animated: true })}>
<Text> ScrollToIndex </Text>
</TouchableHighlight>
</View>
)
}

工作示例:

https://snack.expo.io/B1rfdbsuS

关于reactjs - 无法使用useRef钩子(Hook)访问React Native中的scrollToIndex()方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58297462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com