原因
调用getUserInfo
获取用户信息时,如果本地没有当前用户信息,这时候会先返回一个NullUserInfo
,里面的displayName
就是用户
解决办法
有两种方案可以解决这个问题,如下:
- 通过
getUserInfoEx
获取用户信息,该函数通过callback
返回用户信息,当本地不存在时,会等待从服务端拉取,然后返回。
- 监听用户信息更新事件通知,收到通知之后,再次获取用户信息,参考代码如下:
// 在合适的地方添加事件监听,比如组件创建的时候
wfc.eventEmitter.on(EventType.UserInfosUpdate, this.onUserInfosUpdate);
// ....
onUserInfosUpdate(userInfos){
// 业务代码,比如更新 UI 等
}
// 组件销毁的时候,记得删除监听,否则会造成内存泄漏
wfc.eventEmitter.removeListener(EventType.UserInfosUpdate, this.onUserInfosUpdate);