FlatList React Native 与 Redux 优化

FlatList React Native with Redux Optimization

我最近看到一篇文章,内容是关于确保在将 FlatList 与 redux 结合使用时,你的 data 应该是可变的。通常在 Redux 中(正如它所说)我将状态视为不可变的并且 return 在我的 reducer 中有一个新的更新副本。

所以我找到的文章是 Redux 建议的反模式。虽然它说这样做是因为 FlatList 的性质是 VirtualizedList

所以我的问题是:"Should I be mutating data in redux that will be used in a FlatList / VirtualizedList"?

而不是像这样做:

case FETCH_POSTS:
   return {
     posts: [...state.posts, ...action.newPosts]
   }

我应该做的:

case FETCH_POSTS:
   action.newPosts.forEach((post) => state.posts.push(post))
   return

我反对。正如您提到的,它是一种反模式 it is for good reasons。因此,我最近在我们的应用程序中遇到了一个错误。它不仅可能是错误的原因,而且很难找到它们。

React Native 文档说你应该在处理不可变数据时使用 VirtualizedList

也许您可以尝试一种混合方法,从存储中获取新状态,然后手动改变 FlatList.

的状态