【问题标题】:React Native | Flatlist & memo | renderItem is not function反应原生 |平面清单和备忘录 | renderItem 没有功能
【发布时间】:2021-03-10 00:43:07
【问题描述】:

我有一个清单。里面有10个元素。我用 flatlist 展示这个。但是当列表中的 10 个元素中的 1 个发生变化时,它会再次渲染其中的 10 个。我打算用 memo 解决这个问题(flatlist 必须自己解决这个问题,但无论如何),但我遇到了语法错误。错误:renderItem 不起作用。

const Item = React.memo( ({item}) => (
   <Text>{item.name}</Text>
))

const List = () => {
  return (
     <FlatList
        ..
        renderItem = {Item}
     >
)}
export default React.memo(List);

【问题讨论】:

    标签: reactjs react-native flatlist


    【解决方案1】:

    替换这个

    renderItem = {Item}
    

    renderItem={({ item }) => <Item item={item} />}
    

    【讨论】:

    • 感谢您的回答。没有非内联方法。这是唯一的解决方案吗?
    【解决方案2】:

    但是当列表中 10 个元素中的 1 个发生变化时,它会呈现 10 个 又来了

    我想你忘了添加 Flatlist extraData 属性。更多详情请查看this

    【讨论】:

    • 感谢您的回答。对于这个例子,假设 item.name 已经改变,你会写 extraData 吗?
    • 你能举出你的完整例子吗?
    • 另一个问题来到了同一个地方。这是一个更清晰的例子。你可以在那里写。感谢您的关注。 stackoverflow.com/questions/65034994/…
    • 当你使用 setstate 更新数据时,整个应用会重新渲染,包括 Flatlist。
    猜你喜欢
    • 2020-03-23
    • 2022-01-23
    • 2020-09-28
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多