首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义发送按钮并清除textInput react-native-gifted-chat

自定义发送按钮并清除textInput react-native-gifted-chat
EN

Stack Overflow用户
提问于 2017-12-12 02:22:40
回答 2查看 5.6K关注 0票数 4

我正在使用react-native-gifted-chat并有一个自定义的Send按钮,但是我如何使用自己的Send按钮正确调用onSend,然后如何清除inpuxText元素?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-12-23 04:03:54

您可以定义renderSend函数:

代码语言:javascript
复制
renderSend = (sendProps) => {
        <TouchableOpacity>
          <Image source={require('path/to/your/button/icon')} />
        </TouchableOpacity>
      );
  }

<GiftedChat renderSend={this.renderSend} />

更多信息请点击此处:https://github.com/FaridSafi/react-native-gifted-chat/issues/480

至于清除文本输入,也许你可以使用redux,并通过返回一个空的textInput来清除textInput?

例如:

代码语言:javascript
复制
case MESSAGE_SENT:
      return { ...state, error: action.payload, loading: false, textInput: '' };
票数 1
EN

Stack Overflow用户

发布于 2020-08-12 05:37:10

所以我花了一段时间,但我最终得到了它

代码语言:javascript
复制
 <GiftedChat
          messages={messages}
          textInputStyle={styles.textInput}
          onSend={messages => onSend(messages)}
          multiline
          user={{
            _id: 1,
          }}
          renderSend={(props)=>{
            const {text,messageIdGenerator,user, onSend} = props
            return(
              <TouchableOpacity onPress= {
                ()=>{
                   if (text && onSend) {
                       onSend({ text: text.trim(), user:user,_id:messageIdGenerator()}, true);
                 }
                 }
                } style={styles.sendButton}>
                   <Send/>
            </TouchableOpacity>
            )}} 
    />

至于使用redux来清除它是有点多余的,而且你必须在redux中处理一个大对象,这不会对性能有太大的影响

只需转到react原生天才聊天中send.js的主要实现

https://www.github.com/FaridSafi/react-native-gifted-chat/tree/master/src%2FSend.tsx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47759010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档