美文网首页
react-native之ListView渲染问题

react-native之ListView渲染问题

作者: LOVE小狼 | 来源:发表于2017-08-05 22:14 被阅读52次

    官方文档中给出了ListView组件数据源初始化的方式,这里主要记录一下其中构造函数中由于rowHasChanged这个参数所遇到的坑

    一. ListView渲染

    由于手机端设备性能远不可与PC相提并论,因此在编写手机app时对性能要求会很高,ListView考虑到了当数据列表量很大时要进行一次过滤,通过过滤的数据才会被渲染,那么ListView是如何定义过滤规则的呢?
    rowHasChanged方法接收两个参数,这两个参数为数据源中数组的元素,每次渲染前都会对数组中的元素进行一次比较,判断是否有重复数据,rowHasChanged方法返回true的数据才会被渲染

    二. 对象比较与深浅拷贝

    如上文所写,数据源中的数据在rowHasChanged内进行比较后返回true才会被渲染,因此此时在数据为对象类型时要格外小心,引用类型比较时即使该数据内部修改成功,但是引用地址仍不会改变,例如对象类型数据内部的基本数据类型改变时仍然不会渲染

    三. 引用类型比较解决方案

    1. 使用对象中特有的key值进行比较
    2. 使用深拷贝改变对象本身

    相关文章

      网友评论

          本文标题:react-native之ListView渲染问题

          本文链接:https://www.haomeiwen.com/subject/jliwlxtx.html