listview 刷新数据错乱



  • 不知道大家有没有做过自动给listview刷新。设置定时器 10秒 刷新一次,也就是对 datasource 从新执行如下操作。
    this.setState({
    dataSource:this.state.dataSource.cloneWithRows(data)
    })
    数据是刷新了。但是出现错乱现象 ,具体问题表现为:
    1.刷新后 第一行的某些数据如(图片,文字)实际上第二行的数据
    2.刷新后 某一行点进去确实后面某行的链接。

    初始化datasource的时候 用了import isequal from 'lodash.isequal'; 方法
    new ListView.DataSource( { (r1,r2) => isequal(r1,r2)}) 做了深度比较。

    确认后台json数据正确的。传的都是json对象,不至于出现标题正确,而图片不正确。感觉无能为力,在此求助大家。



  • @qiuting 说:
    cloneWithRows方法用的不对吧,不是该类似这样吗?

    var ds = new ListView.DataSource({
         rowHasChanged:(r1,r2) => r1 !== r2
     });
    return {
        dataSource: ds.cloneWithRows(['row 1', 'row 2']),
    }
    

  • administrators

    有给每个row赋予正确的key值吗



  • @sunnylqm 有的。



  • @chezhe 你这个是es5的写法。是一个意思



  • Datasource 的参数不该是个对象吗,传入一个方法没问题?

    rowHasChanged


登录后回复