You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

emoji-picker-react@4.3.0点击表情显示undefined及404报错问题

聊天应用Emoji选择器问题修复(emoji-picker-react v4.3.0)

问题1:点击表情时emojiObject为undefined,控制台输出PointerEvent

原因

emoji-picker-react v4.3.0的onEmojiClick回调参数顺序与你代码中写的相反,默认是**(emojiObject, event)**,而非(event, emojiObject)。当前代码把事件对象当成表情数据对象,导致无法获取表情内容。

修复代码

调整回调参数顺序,同时用函数式更新确保获取最新状态:

const handleEmojiClick = (emojiObject, event) => {
    console.log(emojiObject);
    setMsg(prevMsg => prevMsg + emojiObject.emoji);
}

问题2:表情图片资源404错误

原因

默认CDN数据源路径失效,或是emoji-datasource版本与picker版本不兼容,导致组合表情(如带肤色修饰的表情)的图片请求路径错误。

修复方法

给Picker组件指定兼容版本的CDN资源路径:

{showEmojiPicker && <Picker 
    onEmojiClick={handleEmojiClick} 
    cdnUrl="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@14.0.0/img/apple/64/"
/>}

若需要其他风格表情,替换对应数据源路径即可(如google、twitter等)。

完整修复后代码示例

function ChatInput() {
    const [msg, setMsg] = useState('')
    const [showEmojiPicker, setShowEmojiPicker] = useState(false);

    const handleShowEmoji = () => {
        setShowEmojiPicker(!showEmojiPicker);
    }

    const handleEmojiClick = (emojiObject, event) => {
        console.log(emojiObject);
        setMsg(prevMsg => prevMsg + emojiObject.emoji);
    }

    return (
        <Container>
            <div className="button-container">
                <div className="emoji">
                    <BsEmojiSmileFill onClick={handleShowEmoji}/>
                    {showEmojiPicker && <Picker 
                        onEmojiClick={handleEmojiClick}
                        cdnUrl="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@14.0.0/img/apple/64/"
                    />}
                </div>
            </div>
            <form className='input-container'>
                <input type='text' placeholder='type your message here' value={msg} onChange={(e) => setMsg(e.target.value)}/>
                <button className='submit'>
                    <IoMdSend/>
                </button>
            </form>
        </Container>
    )
}

内容的提问来源于stack exchange,提问作者Krishnadev. V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:15:32