piffy
1
我有一个主题组件小部件,当有新主题或未读主题时,它会显示一个小的气泡。为了实时更新,我这样做:
topicTrackingState.onStateChange(() => {
this.scheduleRerender();
});
我想对私信(PM)做类似的事情。我可以使用 new_personal_messages_notifications_count 来获取用户的消息数量。但是,如果收到新消息,小部件不会自动重新渲染。有没有一种简单的方法可以在收到新消息时更新小部件,类似于上面的 topicTrackingState?
piffy
2
所以我找到了一个可行的解决方案。显然,有一个私信版本的 TopicTrackingState。我花了一段时间才弄清楚它需要一个“key”作为参数,我不清楚这个 key 是做什么用的,但它接受了一个任意字符串而没有问题
pmTopicTrackingState.onStateChange("pm-tracking-key", () => {
this.scheduleRerender();
});
这会触发重绘,但我注意到 new_personal_messages_notifications_count 没有及时更新以供重绘,因此它无法立即更新。
不过,我认为这对我来说是一个“足够好”的解决方案。通知最终会显示在小部件上。我很乐意听取对此的任何评论。
2 个赞