我使用的是本地有天赋的聊天模块 我的要求是我想显示聊天记录 对于聊天记录,我使用API通过服务器获取10条消息记录。 现在我的聊天工作正常但是,我无法显示聊天记录消息 对此有什么可行的解决方案 注意:我知道在资优聊天中使用"加载早期功能"
我的代码:
render() {
return (
<GiftedChat
messages={this.state.messages}
onSend={(messages) => this.onSend(messages)}
user={{username}}
onKeyPress={this.typing}
value={this.state.messages}
onChangeText={ (messages) => this.setState({messages}) }
onLoadEarlier={this.onLoadEarlier}
isLoadingEarlier={this.state.isLoadingEarlier}
/>
);
}
// This is my API FOR CHAT HISTORY
getChat() {
console.log("navnit jha "+this.state.groupId);
fetch('http://35.154.169.9:4130/baduga/'+groupId+'/getChat', {method: "GET"})
.then((response) => response.json())
.then((responseData) => {
var Data = [];
if (responseData!==null) {
console.log("navnit"+JSON.stringify(responseData));
for(var i=0;i<responseData.length;i++){
Data.push({
msg:responseData[i].msg,
username:responseData[i].username
});
}
console.log("chat called "+JSON.stringify(Data));
this.setState({dataSource: this.state.dataSource.cloneWithRows(Data)});
}
})
.done();
}
答案 0 :(得分:0)
@baduga biz,您的“提前加载”按钮显示了吗?
您的代码中缺少“ loadEarlier”道具。
<GiftedChat
messages={this.state.messages}
onSend={(messages) => this.onSend(messages)}
user={{username}}
onKeyPress={this.typing}
value={this.state.messages}
onChangeText={ (messages) => this.setState({messages}) }
loadEarlier={true} // this was missing
onLoadEarlier={this.onLoadEarlier}
isLoadingEarlier={this.state.isLoadingEarlier}
/>