首页 > 解决方案 > 我如何在 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 });
              }
            }}
            />
      
        

标签: javascriptnode.jsreactjsreact-native

解决方案


尝试延迟时间,例如

useEffect(() => {
  setTimeOut(() => {
      const node = flatListRef.current;
      node.scrollToOffset({ offset: 493, animated: true });
  },400);
},[]);

推荐阅读