الوصول إلى الـ API من مكون

أنا أتعامل مع سمات Discourse ولكني لست مطور ويب/جافاسكريبت. بالنظر إلى بعض مكونات السمات الخارجية، لدي هذا السؤال.

في discourse-header-submenus/javascripts/discourse/connectors/above-site-header/header-submenus.js، يوجد هذا الكود:

export default {
  setupComponent() {
    // بعض الكود هنا
  },
};

لا توجد استيرادات في أعلى الملف.

إذا فهمت جافاسكريبت (strict) بشكل صحيح، فإن السياق الوحيد الذي سيكون للكود داخل setupComponent() إمكانية الوصول إليه هو سمات الكائن الذي يتم تقييمه عليه.

عندما أنظر إلى هذا السياق باستخدام console.log(this) داخل الدالة setupComponent()، يبدو أنه ليس لدي وصول إلى الكائن api المفيد جدًا.

هذا مؤسف!

أيضًا، لن أعرف كيفية import بشكل صحيح لأن الكود الرسمي للغلاف لاستخدام وظائف api مُصنّف زمنيًا ويبدو كالتالي:

import { apiInitializer } from "discourse/lib/api";

export default apiInitializer("0.12.3", api => {
    // الكود الذي يستخدم api هنا
});

كيف يمكنني الوصول إلى الكائن api من داخل setComponent()؟ أم أنني أفتقد شيئًا أساسيًا هنا؟

إعجاب واحد (1)

حسنًا، تم الأمر هكذا:

import { withPluginApi } from "discourse/lib/plugin-api";

export default {
    setupComponent() {
        withPluginApi("0.12.3", api => {
            console.log(api.getCurrentUser());
        });
    },
};
إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.