我正在使用React Native开发聊天应用。 因此,对于新到达或我的回复,在ListView中呈现名为ReplyCard的组件 同时,线程的总回复计数应显示在第一个ReplyCard
上下面的代码是newNode到达时
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}/>
);
}
在控制台中记录第一个节点和新到达。 我认为这是因为ListView只尝试渲染受影响的行 所以我期望根据数据源的变化来渲染两行 但只有新的到来 两者之间的区别在于新到货的数据源是全新的,我修改了第一个节点的数据源。 我想解决这个问题。如果你可以帮助我,那对我来说会很棒 提前致谢