Wix Velo多角色成员场景下元素隐藏问题求助
解决Wix Velo中多角色成员的元素可见性问题
问题分析
原代码仅获取用户的第一个角色做判断,当用户同时拥有Gardener和其他角色时,若第一个角色不是Gardener,就会错误隐藏元素#image1。正确逻辑应为:只要用户角色列表里包含Gardener,就显示元素,否则隐藏。
修复后的代码
import wixUsers from 'wix-users'; $w.onReady(function () { let currentUser = wixUsers.currentUser; currentUser.getRoles() .then((roles) => { // 检查用户所有角色中是否包含Gardener const hasGardenerRole = roles.some(role => role.name === 'Gardener'); if (hasGardenerRole) { $w('#image1').show(); } else { $w('#image1').hide(); } }) })
代码说明
- 用
Array.some()遍历用户全部角色,只要存在名称为Gardener的角色就返回true - 替换原代码仅取第一个角色的逻辑,适配多角色场景下的判断需求
- 保留原异步获取角色的流程,保证代码运行稳定性
内容的提问来源于stack exchange,提问作者helpme
相关产品推荐
相关产品推荐

