import { apiInitializer } from "discourse/lib/api";
import { iconNode } from "discourse-common/lib/icon-library";
import { tracked } from "@glimmer/tracking";
export default apiInitializer((api) => {
@tracked iconName = settings.category_lock_icon || 'lock'; // Возврат к 'lock', если настройка не определена
@tracked lockIcon = iconNode(this.iconName);
Раздражает, но в консоли браузера я вижу ошибку ReferenceError: iconName is not defined. Посмотрев на файл в инструментах разработчика браузера, я вижу следующее:
iconName = settings.category_lock_icon || 'lock'; // Возврат к 'lock', если настройка не определена
lockIcon = (0, _iconLibrary.iconNode)((void 0).iconName);
Это в сравнении с другим компонентом, который я создал и который использует отслеживаемые переменные (и работает):
Вам не нужно отслеживать эти значения. Они постоянны, поэтому это излишне. Отслеживайте только те данные, которые будут динамическими и при изменении которых вы хотите повторно вызвать геттеры.
Каждый раз при отслеживании вы расходуете ресурсы, поэтому старайтесь минимизировать это. Не страшно, но это хорошая практика — не отслеживать изменения, если ничего не меняется во время посещения страницы.
В любом случае, я не думаю, что настройки обновятся без перезагрузки страницы.