إشعار بالإيقاف: أصبح استخدام خاصية المنطقة الزمنية من كائن المستخدم غير موصى به. استخدم كائن user_option بدلاً من ذلك

ستظهر لك هذه الإشعارات عند محاولة تحميل المستخدم من المتجر بالطريقة التالية:

api.container.lookup('service:store').find('user', api.getCurrentUser().username).then((user) => {
});

يبدو أن ترطيب بيانات المستخدم من المتجر يؤدي إلى الوصول إلى المنطقة الزمنية الخاصة بالمستخدم، مما يؤدي إلى ظهور هذا الإشعار.

أستخدم الكود أعلاه للوصول إلى حقول user_fields الخاصة بالمستخدم، والتي لا تكون معبأة في المستخدم المُعاد من api.getCurrentUser().

هل يوجد طريقة أخرى للحصول على user_fields من السمة أو مكوّن السمة دون استخدام البنية المذكورة أعلاه؟

وجدت طريقة لتجاوز تنبيه الإلغاء (deprecation notice) مع الحفاظ على الوصول إلى user_field:

api.getCurrentUser().findDetails().then((user) => { ... });

ومع ذلك، فإن findDetails سترسل دائمًا طلبًا إلى الخادم. لا يوجد أي تخزين مؤقت (cache). بمجرد استدعائها، ستتم تعبئة user_fields للمستخدم الحالي.

لذلك، يمكنك تحسين المنطق قليلاً على النحو التالي:


function withUserFields(user, callback) {
  if (user.user_fields === undefined) {
    user.findDetails().then(callback);
  } else {
    callback(user);
  }
}

withUserFields(api.getCurrentUser(), (user) => {
  // نفعل شيئًا باستخدام user.user_fields[]
});