تحديث الويدجت عند استلام رسالة جديدة؟

لدي عنصر واجهة مستخدم لمكون سمة يعرض فقاعة صغيرة عند وجود موضوع جديد أو غير مقروء. للحصول عليه للتحديث في الوقت الفعلي، أقوم بما يلي:

  topicTrackingState.onStateChange(() => {
    this.scheduleRerender();
  });

أود أن أفعل شيئًا مشابهًا مع الرسائل الخاصة. يمكنني استخدام new_personal_messages_notifications_count للحصول على عدد الرسائل لمستخدم. ولكن إذا تم استلام رسالة جديدة، فإن عنصر الواجهة لا يعاد عرضه تلقائيًا. هل هناك طريقة سهلة لتحديث عنصر الواجهة عند استلام رسالة جديدة مشابهة لـ topicTrackingState أعلاه؟

لذا وجدت حلاً فعالاً. يبدو أن هناك نسخة رسائل خاصة من TopicTrackingState. استغرق الأمر مني بعض الوقت لفهم أنها تتطلب “مفتاحًا” كمعلمة، وهو أمر غير واضح بالنسبة لي ما هو المفتاح، لكنها قبلت سلسلة عشوائية دون مشكلة

pmTopicTrackingState.onStateChange("pm-tracking-key", () => {
  this.scheduleRerender();
});

هذا يؤدي إلى إعادة العرض، لكنني لاحظت أن new_personal_messages_notifications_count لم يتم تحديثه في الوقت المناسب لإعادة العرض، لذا فشل في التحديث فورًا.

أعتقد أن هذا حل “جيد بما فيه الكفاية” بالنسبة لي. في النهاية، تصل الإشعارات إلى الأداة. يسعدني سماع أي تعليقات حول هذا الأمر.

إعجابَين (2)