1

我引用的是这里的代码:

https://snack.expo.io/@xcarpentier/gifted-chat

正如代码所示,当有人按下时:

#awesome

由于以下原因将触发警报:

onPress: props => alert(`press on ${props}`),

我想做的是让按下将“Hello world”发送到输入中,就好像用户只是输入了消息然后按下回车一样。

看来我需要将“Hello world”发送到这个函数中:

  onSend(messages = []) {
    this.setState((previousState) => ({
      messages: GiftedChat.append(previousState.messages, messages),
    }));
  }

但我不知道该怎么做。

我怎样才能让媒体像普通的聊天输入一样工作?

4

2 回答 2

2

GiftedChat 有一个控制输入文本的text道具。您可以使用该道具来控制输入的文本。

如果您决定指定一个text道具,GiftedChat 将不再管理自己的内部文本状态,并将完全遵从您的道具。这对于使用像 Redux 这样的工具非常有用,但是您需要采取一个额外的步骤:只需实现onInputTextChanged接收输入事件和重置事件(例如清除 onSend 文本)

样本

<GiftedChat
  text={this.state.inputText}
  onInputTextChanged={text => this.setState({inputText: text})}
  /* ... */
/>
于 2018-06-02T09:23:38.313 回答
0

您无需模拟按钮按下即可实现该功能:

https://snack.expo.io/ryjHSZle7

于 2018-06-02T11:58:55.487 回答