react-native-anchors icon indicating copy to clipboard operation
react-native-anchors copied to clipboard

Not working with flat list

Open TommyTheTribe opened this issue 1 year ago • 4 comments

Hi sir, thanks for your work !

It seems that there is an issue with FlatList, I got an error ref.measureLayout must be called with a node handle or a ref to a native component.

Here is my code :

import {FlatList, ScrollTo, Target} from '@nandorojo/anchor';
import {Text, View} from 'react-native';

const test = [1, 2, 3, 4, 5, 6, 7, 8];

  return (
    <View style={{flex: 1}}>
      <FlatList
        data={test}
        renderItem={({item, index}) => {
          if (index === 0) {
            return (
              <ScrollTo target="bottom-content">
                <Text>Scroll to bottom content</Text>
              </ScrollTo>
            );
          }
          if (index === test.length - 1) {
            return (
              <Target name="bottom-content">
                <View style={{height: 100, backgroundColor: 'blue'}} />
              </Target>
            );
          }
          return <View style={{height: 100, backgroundColor: 'blue'}} />;
        }}
      />
    </View>
  );

"react-native": "0.71.0"

Thanks for your help !

TommyTheTribe avatar Apr 14 '23 10:04 TommyTheTribe

After a lot of testing I managed to solve this by calling getNativeScrollRef on FlatList<T>:

import {FlatList, ScrollView} from 'react-native-gesture-handler'
import {useRegisterScroller} from '@nandorojo/anchor'

const {registerScrollRef} = useRegisterScroller()

<FlatList
  ref={list => registerScrollRef(list?.getNativeScrollRef() as ScrollView)}
  // ...
/>

stefanahman avatar Oct 21 '23 20:10 stefanahman

Hmm interesting we could implement this in the library

nandorojo avatar Oct 21 '23 20:10 nandorojo

It would be great, if I could achieve the same result with SectionList

yu1iaw avatar May 20 '24 17:05 yu1iaw

I'm curious if the anchoring logic still works when the list item has not yet been rendered by the FlatList? Does anyone face this issue?

lee1409 avatar Jul 29 '24 23:07 lee1409