Reactjs React Native-ListView呈现
我正在使用React Native开发聊天应用程序。 因此,对于新到达的邮件或我的回复,在ListView中呈现一个名为ReplyCard的组件 同时,线程的总回复数应该显示在第一个回复卡上 下面的代码是到达newNode的时间Reactjs React Native-ListView呈现,reactjs,react-native,Reactjs,React Native,我正在使用React Native开发聊天应用程序。 因此,对于新到达的邮件或我的回复,在ListView中呈现一个名为ReplyCard的组件 同时,线程的总回复数应该显示在第一个回复卡上 下面的代码是到达newNode的时间 const sectionId = this.state.dataSource.sectionIdentities[0]; var nodes = this.state.dataSource._dataBlob[sectionId]; var aNode = Obje
const sectionId = this.state.dataSource.sectionIdentities[0];
var nodes = this.state.dataSource._dataBlob[sectionId];
var aNode = Object.assign({}, nodes[0]);
aNode.data.meta = {
repliesCount: this.state.repliesCount
}
this.setState({ dataSource:
this.state.dataSource.cloneWithRows([aNode, ...(nodes.concat(
newNode
))])
});
我连接了ListView的renderRow回调来呈现我的自定义单元格
renderRow(reply, sectionId, rowId) {
console.log('ReplyCard is going to be rendered - meta', reply, sectionId, rowId);
return (
<ReplyCard reply={reply}/>
);
}
renderRow(回复,部分ID,行ID){
log('ReplyCard将被呈现为-meta',reply,sectionId,rowId);
返回(
);
}
在控制台中记录第一个节点和新到达的节点。
我认为这是因为ListView只尝试渲染受影响的行
因此,我预计将根据数据源更改呈现两行
但只呈现新的到达
两者的区别在于,新到达的数据源是全新的,我修改了第一个节点的数据源。
我想修复这个错误。如果你能帮助我,那对我来说太好了
提前感谢传递给数据源的
rowHasChanged
函数是什么样子的?const ds=new ListView.datasource({rowHasChanged:(r1,r2)=>{return r1.data.meta&&r1.data.meta.repliescont!=r2.data.meta.repliescont;});