javascript - 我如何在 useEffect React Native 中使用 scrollToOffset?
问题描述
我想要做的是,当第一次渲染时,我想向下滚动尽可能多的偏移值(即 493),就像使用 useEffect 和 scrollToOffset
但是如果我使用我的代码,它在第一次渲染时不起作用,但是当从第二次渲染时它起作用......我如何在第一次渲染时运行?
我应该修复什么代码?
这是我的代码
const TodoList = ({replycomment}) => {
const height = Dimensions.get('window').height;
const flatListRef = useRef()
useEffect(() => {
const node = flatListRef.current;
node.scrollToOffset({ offset: 493, animated: true });
},[]);
return (
<FlatList
ref={flatListRef}
style={{height}}
renderItem={({item}) => (
<TodoItem
onPress={() => {
const node = flatListRef.current;
if (node) {
node.scrollToOffset({ offset: height, animated: true });
}
}}
/>
解决方案
尝试延迟时间,例如
useEffect(() => {
setTimeOut(() => {
const node = flatListRef.current;
node.scrollToOffset({ offset: 493, animated: true });
},400);
},[]);
推荐阅读
- apache-flink - 如何在 flink 1.8 中检查 MapState 是否为空
- c++ - 模板化的虚拟成员函数是被禁止的,有替代方案吗?
- youtube-api - 为什么我超过了 Youtube Api v3 的配额
- python - BeatuifulSoup 解析逻辑 - 在运行代码之前检查图像是否存在
- jquery - href 使用 jquery 数据表传递多个参数 - 渲染和返回
- r - R:代码运行,但检查时返回“NA”
- git - 我应该如何分出两个工作项,一个是增强 master,另一个是增强第一个?
- docker - 使用 HAproxy 对两个 ngnix docker 容器进行负载平衡
- android - 关闭和打开通知通道后通知 setFullScreenIntent 停止运行
- websocket - 无服务器 Websocket 服务部署失败,状态码:400;错误代码:BadRequestException