我想在反应原生的天才聊天中显示聊天记录

时间:2018-03-22 13:22:33

标签: react-native

我使用的是本地有天赋的聊天模块 我的要求是我想显示聊天记录 对于聊天记录,我使用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();
        }

1 个答案:

答案 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}
/>