React Native ListView DataSource不使用cloneWithRowsAndSections进行更新

时间:2016-02-27 07:41:56

标签: react-native

在做了一些研究之后,这是我能得到的最接近的答案,但这不适用于我们有rowsWithSection的场景。 React-Native Updating List View DataSource

我面临的问题是这样的事情;用户首先进入联系人列表,然后他们深入查看特定的联系人详细信息,他们可以对其进行修改;假设他们修改了这个人的名字;现在当他们导航回列表视图时;应该刷新和更新listView;但由于我的listView有章节,前面的例子不是直截了当的,我无法理解所提供的解决方案。 picture of Contacts List and Detail

我传递给listView的数据集的结构如下所示:

       {'a':[{},{}], b:[{}]}

如果有人做了这样的事情,请帮助。

谢谢!

2 个答案:

答案 0 :(得分:0)

我解决这个问题的方式不是编辑;我从数据集中删除它并首先更新数据集,然后添加更新的数据集并再次更新数据集。

答案 1 :(得分:0)

如果您编辑联系人,它应该会产生一个新行...您存储的值应该是不可变的。如果为ListView创建新的联系人行,则应更新。

这还取决于你的rowHasChanged声明。我使用文档中提供的默认方法:

rowHasChanged: (r1, r2) => r1 !== r2

!==正在检查r1和r2是否是相同的参考。因此,通过具有不可变的存储值并对其进行更新实际上会创建一个新对象,r1和r2将不相等,因此ListView将更新。

相关问题