限制重新渲染到FlatList中的单个项目的麻烦(React Native)

时间:2020-10-26 01:07:08

标签: react-native react-native-flatlist

问题是,无论何时我点击ListItem(这会从ListItem状态数组中添加或删除selectedList的ID,该ID用于突出显示选定的项)整个列表(及其中的每个项目)重新呈现。我只想重新渲染当时选择的项目。

我对此至少有2点困惑。首先,无论我是否将selectedList数组传递到FlatList的{​​{1}}道具中,都会发生这种重新渲染,并且我正在阅读的所有内容都在说{{1} },除非我提供extraData道具,否则不应该知道任何更改。在下面的示例中,我没有显示FlatList道具,因为就像我说的那样,行为对我来说是相同的。

对我来说,第二个困惑点是,即使extraData希望在每次点击时都进行重新渲染,控制单个项目是否重新渲染的规定方法是什么?我认为我的之所以要重新渲染是因为,由于我的extraData正在重新渲染,因此它正在为每个项目调用我的FlatList函数,并为每个项目返回新组件。但是现在看来人们已经不再使用Flatlist了,因为钩子已经出现了,所以我该如何比较新旧道具以选择何时渲染? (而且,我应该在哪里进行调用?在renderItem函数中还是在shouldComponentUpdate组件内部?)

我觉得答案就在我的两个混乱领域之间。请在下面查看我的示例代码。

renderItem

0 个答案:

没有答案