在rn开发中,一个FlatList中数据用到mobx,遇到下图中的警告
查到下面的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}/>