避免为列表中的每个项目重新渲染 ListHeaderComponent

发布于 2025-01-11 23:58:01 字数 2725 浏览 5 评论 0原文

在我的 React Native Function 组件中,我使用 Expo FlatList 来显示许多图像来自 Google firebase 存储。

我的组件Screen

这样做时,我注意到 ListHeaderComponent 为每个单独的事件呈现。

Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
and so on...

由于我还从 ListHeaderComponent 中的 Local Sotrage 查询数据,这会导致负载过重。

有谁知道如何避免重新渲染 ListHeaderComponent

In my React Native Function component I use Expo FlatList to display many images from the Google firebase storage.

My Component Screen

In doing so, I noticed that the
ListHeaderComponent is rendered for each individual event.

Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
Storage loaded:
"1645357882600"
######################################
and so on...

Since I also query data from the Local Sotrage in the ListHeaderComponent, this leads to a heavy load.

Does anyone have an idea how I can avoid the rerendering the ListHeaderComponent?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

若无相欠,怎会相见 2025-01-18 23:58:01

我不知道这是否是一个好的或正确的解决方案,但它对我有用,感觉像是一种解决方法。

在 ListHeaderComponent 中创建一个 useEffect 并使用数组将其绑定到一个 State。

useEffect(() => { getCurrentEvent() }, [isActive]);

I don't know if this is a good or the right solution, but it works for me an feels like a workaround.

In the ListHeaderComponent create a useEffect and bind this to one State using the Array.

useEffect(() => { getCurrentEvent() }, [isActive]);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文