FlatList

作者: 杨志聪 | 来源:发表于2023-11-30 09:39 被阅读0次

多选操作

假设需要一个支持多选操作的列表,代码如下:

const HomeScreen = ({navigation, route}: Props) => {
  const [data, setData] = useState<string[]>(['1', '2', '3']);
  const [selectable, setSelectable] = useState(false);
  const [selectedSet, setSelectedSet] = useState(new Set<string>());

  const renderItem = ({item}: ListRenderItemInfo<string>) => {
    let isSelected = selectedSet.has(item);
    return (
      <TestItem selectable={selectable} isSelected={isSelected} title={item} />
    );
  };

  return (
    <SafeAreaView style={{flex: 1}}>
      <FlatList
        style={{flex: 1}}
        data={data}
        windowSize={3}
        renderItem={renderItem}
      />
    </SafeAreaView>
  );
};

这里有一个很重要的特性,就是当selectable或者selectedSet改变触发组件渲染时,也会触发FlatList重新渲染他的item(之前认为只有改变data才会)。

相关文章

网友评论

      本文标题:FlatList

      本文链接:https://www.haomeiwen.com/subject/lchqgdtx.html