如何在主题组件中访问自定义字段?

在 ‘Our solution for blurring NSFW content’ 中,我使用了以下代码片段来访问用户字段的值。但这似乎不再起作用了——u.custom_fields 不再包含任何数据:

var u = Discourse.User.current();
if (u.custom_fields.user_field_2) {
    $('body').addClass('nsfw-always-show' );
}

我刚更新到最新版本,并在安全模式下进行了测试,但问题依然存在:

这个接口是否发生了变化?访问用户字段的推荐方法是什么?

我在最新版本上进行了测试,并在安全模式下禁用了所有插件和主题。

你可以尝试类似下面的代码:

<script type="text/discourse-plugin" version="0.8.27">
let currentUser = api.getCurrentUser();

if (currentUser) {
        api.container.lookup('store:main').find('user', currentUser.username).then((user) => {
        console.log('user', user.user_fields);
    });
}
</script>

有关 "text/discourse-plugin" 脚本类型的详细信息,请参阅 在站点自定义中使用 PluginAPI