gpt4 book ai didi

react-native-gifted-chat 如何按返回发送

转载 作者:行者123 更新时间:2023-12-05 04:34:33 25 4
gpt4 key购买 nike

如何让移动键盘上的返回按钮发送消息而不是创建新行?我尝试在 textInputProps 中使用 onSubmitEditing 但无法正常工作。

最佳答案

您需要实现自己的 ChatComposer 并在其中的 textInputProps 中传递 onSubmitEditing Prop 。为了防止键盘关闭,您还需要将 blurOnSubmit 设置为 false。

const [messages, setMessages] = useState([])


const onSend = useCallback((messages = []) => {
setMessages((previousMessages) => GiftedChat.append(previousMessages, messages))
}, [])

const ChatComposer = (
props: ComposerProps & {
onSend: SendProps<IMessage>["onSend"]
text: SendProps<IMessage>["text"]
}
) => {
return (
<Composer
{...props}
textInputProps={{
...props.textInputProps,
blurOnSubmit: false,
multiline: false,
onSubmitEditing: () => {
if (props.text && props.onSend) {
props.onSend({ text: props.text.trim() }, true)
}
},
}}
/>
)
}

return (
<GiftedChat messages={messages} onSend={onSend} renderComposer={ChatComposer} />
)

如果你想从右侧的文本输入字段中删除默认的send按钮,你需要传递一个自定义的renderSend按钮,它可以是空的,例如

renderSend={() => {}}

请注意,我仅在 iOS 上测试了以上所有内容。 Android 的行为可能有所不同。

关于react-native-gifted-chat 如何按返回发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71203028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com