我找到了一个绕过此弃用提示的方法,同时仍然可以访问 user_field:
api.getCurrentUser().findDetails().then((user) => { ... });
不过,findDetails 总是会向服务器发送请求。没有任何缓存。一旦调用它,当前用户就会拥有已填充的 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[] 执行某些操作
});