mobx在react native中报警告: attempt to read an array index that is bounds...

在rn开发中,一个FlatList中数据用到mobx,遇到下图中的警告


Simulator Screen Shot - iPhone 6 - 2018-01-08 at 11.44.31.jpg

查到下面的issues解决了问题,就是不要直接使用mobx的数据,slice一下就没有警告了;
Issues链接

<FlatList
  data={historyStore.historyData}
  renderItem={this.renderItem}/>

historyData为mobx数据,作如下改动,就没有警告了

<FlatList
  data={historyStore.historyData.slice()}
  renderItem={this.renderItem}/>

但是如果是SectionList,其数据结构是多维数组,只是在调用mobx数据时slice一下依然会有警告,因为其数据内部的数组依然是mobx数据,此种情况可使用computed改造数据,代码如下:

//class GroupChatListStore
@observable sectionData = [
        {
            key: "临时群组",
            data: [0,1,2 ]
        },
        {
            key: "我的圈子",
            data: [0,1,2]
        }
    ];
@computed get formattedList(){
        return this.sectionData.map((v)=>{
            return {
                key: v.key,
                data: v.data.slice(),
            }
        }).slice();
    }

//使用方法
<SectionList sections={groupChatListStore.formattedList}/>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • react-native + mobx 入门到放弃 标签(空格分隔): react mobx Android 作为...
    swensun阅读 5,653评论 3 14
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,217评论 30 472
  • 功能点: 1.页面调用指定的py文件,触发测试脚本执行 2.上传待测试数据到指定目录下,供脚本使用 3.下载指定文...
    大婶N72阅读 641评论 0 3
  • 阿原独自居住的第五年。镜中自己的身体纤细而成熟,紧实的肌肉凝结着自律的力量。她是在有意训练身体的每一部分,这让她感...
    怀念你童言无忌阅读 271评论 0 0
  • 勇敢 文/左亦芦苇 婉转的流光在冬雨里慢慢飞舞 蛰伏已久的勇敢不带一丝血色 羽翳伴着枫...
    左亦芦苇阅读 257评论 0 1