这样一种比较常见的场景:
有个列表ListView,列表的数据是List<PersonModel>
,列表中的一个cell对应一条个人信息,点击cell,进入个人信息详情页。详情页的信息可以编辑,编辑后,列表中对应的信息也应该刷新。cell和详情页的数据来自同一个PersonModel。
目前的处理方式是,详情页编辑后,返回到列表页的时候执行 setState
刷新列表:
pushDetailPage(person).then(){ setState() }
除此之外还有哪些更好的写法?能否做到不每次返回列表都调用setState?
chatGPT ai回答
如果你想避免每次返回列表页都调用 setState() 来刷新列表,你可以使用一些替代方法。
一种可能的方法是在详情页中编辑数据后,使用一个函数来更新列表中的数据,而不是调用 setState()。例如:
还有,你可以使用一些状态管理库来管理数据流,例如 Redux、MobX 或 Flux。这些库可以让你在任何地方更新数据,并自动刷新相关组件。
例如,你可以在详情页中使用 Redux 来更新数据,然后自动刷新列表页。这样,你就不需要在返回列表页的时候调用 setState() 了。
不过,使用状态管理库可能会增加代码的复杂度,因此需要根据你的项目的具体情况来决定是否使用。