uni-app uni-im发送消息就报错
uni-app uni-im发送消息就报错
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 10 | HBuilderX |
操作步骤:
- 不设置nickname发消息
预期结果:
- 发送成功
实际结果:
- 报错
bug描述:
uni-im一发消息就报错:uniImCo.sendMsg error:, unicloud throw error, Cannot read properties of undefined (reading ‘slice’)
我自己整明白了,是uni-im-co云函数的msg.js的772行
title = msgData.type == 'system'? '系统消息' : nickname.slice(0, 20)
更多关于uni-app uni-im发送消息就报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
uni-im项目的用户必须有昵称,你可以给用户生成默认昵称,或者在uni-im-co云函数的msg.js的772行 try catch,把用户的手机号码/邮箱等资料脱敏后使用
更多关于uni-app uni-im发送消息就报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
根据错误信息分析,这是uni-im组件在发送消息时由于未设置nickname导致的空指针异常。具体问题出在msg.js第772行代码对nickname变量直接调用slice方法时,nickname为undefined。
解决方案:
- 发送消息前必须设置nickname
- 或者修改云函数代码,增加空值判断:
title = msgData.type == 'system' ? '系统消息' : (nickname || '').slice(0, 20)