求助listview,更新数据错乱的问题



  • 做聊天列表
    初始化一个array作为用户列表的datasource
    新收的陌生人用户数据,concat到array中
    rowData传到子组件render正常,一些固定信息比如头像用户名之类的都正常,listview更新也正常
    但是:
    子组件中获取到的id错乱导致监听出问题了,id是通过rowData一起传过来的,就是render中的props.rowData.id跟mount的时候获取的props.rowData.id不一样了
    实在是一头包
    r1和r2的判定好像没问题,行数据是重新传染了的
    //
    另外就是arry重新排序之后,再setState,似乎没有任何效果,listview也不更新顺序,render确实执行了,但是似乎并不能影响排序
    生成新的dataSource再setstate,顺序可以变了,但是依然是监听出问题
    选强制渲染一个空数组,再渲染回来暂时可以解决,不过感觉不科学啊
    //
    求助。。。。。
    查了下跟这位仁兄的情况似乎一样
    http://bbs.reactnative.cn/topic/1101/listview-刷新数据错乱/5
    @qiuting 不知道有没有解决



  • 一般是key未设置或不合理(不能区分不同项)



  • @sunnylqm
    感谢回复,重新写了下,把要监听的数据先本地化存储再setState渲染,暂时是可以了
    key我试过似乎没作用



  • 我也出现这个问题,为啥要先本地化存储呢?


Log in to reply