在天才聊天中删除和复制消息

我不得不像这样将onLongPress添加到giftedChat组件

 <giftedChat
   onLongPress={this.onLongPress}

   ....
   ....
/>

onLongPress返回上下文,消息。然后,您可以显示一个actionSheet并添加要删除和复制的逻辑。

onLongPress(context,message) {
    console.log(context,message);
    const options = ['copy','Delete Message','Cancel'];
    const cancelButtonIndex = options.length - 1;
    context.actionSheet().showactionSheetWithOptions({
        options,cancelButtonIndex
    },(buttonIndex) => {
        switch (buttonIndex) {
            case 0:
                Clipboard.setString(this.props.currentMessage.text); this code not work and brokes my app :(
                break;
            case 1:
               //code to delete
                break;
        }
    });
}

这里有代码的发送属性:

  sendBotResponse(text) {
let msg = {
  _id: this.state.messages.length + 1,text,//createdAt: new Date(Date.UTC(2019,5,11,17,20,0)),createdAt: new Date(),user: BOT_USER,};
this.setState(previousState => ({
  messages: giftedChat.append(previousState.messages,[msg]),}));
}

handleGoogleResponse(result) {
  console.log(result);
  let text = result.queryResult.fulfillmentMessages[0].text.text[0];
  this.sendBotResponse(text);
}

onSend(messages = []) {
   this.setState(previousState => ({
    messages: giftedChat.append(previousState.messages,messages),}));
 let message = messages[0].text;
 Dialogflow_V2.requestQuery(
    message,result => this.handleGoogleResponse(result),error => console.log(error)
  );
}

但是我没有成功,有人可以帮助我完成这段代码吗? ps。我正在使用DIALOGFLOW

zhujun1918 回答:在天才聊天中删除和复制消息

更改this.props.currentMessage.text
messages.text
创建以下函数:

    onDelete(messageIdToDelete) {
    this.setState(previousState =>
      ({ messages: previousState.messages.filter(message => message.id !== messageIdToDelete) }))
    }

    onLongPress(context,message) {
    console.log(context,message);
    const options = ['copy','Delete Message','Cancel'];
    const cancelButtonIndex = options.length - 1;
    context.actionSheet().showActionSheetWithOptions({
        options,cancelButtonIndex
    },(buttonIndex) => {
        switch (buttonIndex) {
            case 0:
                Clipboard.setString(message.text);
                break;
            case 1:
                this.onDelete(messageIdToDelete) //pass the function here
                break;
        }
    });
}
,

请更改调用函数的方式

onLongPress = {this.onLongPress}        至  onLongPress = {()=> {this.onLongPress()}}

本文链接:https://www.f2er.com/2942510.html

大家都在问