React Native - FlatList - 内部状态

Posted

技术标签:

【中文标题】React Native - FlatList - 内部状态【英文标题】:React Native - FlatList - Internal State 【发布时间】:2018-08-02 05:43:29 【问题描述】:

我正在使用 FlatList 来在我的 react-native 应用程序中实现 Store 视图。

我正在从我的组件的 componentDidMount 循环步骤中完成的 API 调用中检索存储项目,然后将其存储在我的本地 state 中。

我在Flatlist 文档中找到了这句话:

当内容滚动出渲染窗口时,内部状态不会被保留。确保在项目数据或外部存储(如 Flux、Redux 或 Relay)中捕获所有数据。

我想知道这是什么意思。我只是在使用我当地的州,它似乎工作得很好。 这样做有什么问题吗?您能否提供有关此特定点的更多信息?

另外,如果您对我的用例有任何建议或优化,请随时添加。

感谢您的宝贵时间。

【问题讨论】:

【参考方案1】:

假设您有一个 Contacts 组件,其中的 FlatList 为数据中的每个项目呈现 Contact 组件。我们还假设这些联系人是可选择的。如果您将这些选择值(例如selected: true)存储在Contact 组件内部状态而不是Contacts 组件状态中,则当项目滚动出去时,它将被卸载并且该项目的状态将被重置。如果您将其保存在全局数据中,它将以最后一个状态创建。

希望我能解释一下。

【讨论】:

您能否提供一些说明如何将Contacts 或任何相关示例从内部状态移动到组件状态的文档?

以上是关于React Native - FlatList - 内部状态的主要内容,如果未能解决你的问题,请参考以下文章

React Native - FlatList - 内部状态

在 React 中等效于来自 React Native 的 FlatList

FlatList vs map react-native

React Native FlatList 嵌套在具有相同方向的 FlatList 中

React Native——组件FlatList

react-native使用flatlist上拉加载下拉刷新