【问题标题】:TypeError: Cannot read property 'cache' of undefined in Discord.jsTypeError:无法读取 Discord.js 中未定义的属性“缓存”
【发布时间】:2020-07-23 23:15:56
【问题描述】:

所以,我正在使用 Discord.js 编写一个 Discord 机器人。我做的其中一件事是用户信息命令。我希望它显示成员的角色和他们正在玩的游戏(如果他们在一个游戏中)。对于角色,我得到了TypeError: Cannot read property 'roles' of undefined。请帮忙。您可以参考以下代码。

case 'whois':
            const embed = new Discord.MessageEmbed()
             var user = message.mentions.users.first()            
            if(!args[1]) return message.reply('Apologies! Please specify a particular member!');
                embed.setTitle('User Information')
                embed.addField('Username', user.username)
                embed.addField('User ID', user.id)
                embed.addField('User Tag', user.tag)
                embed.addField('Roles:', member.roles.cache.map(r => `${r}`).join(' | '))
                embed.addField('Created at:', user.createdAt)             
                embed.setColor(0x00FF93)
                embed.setThumbnail(user.avatarURL())
                embed.setFooter('Generated by Salty!')
            message.channel.send(embed);
            break;

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:

    首先,当您使用case "whois" 打开一个案例时,您不需要冒号 (:)。其次,这是因为您将成员命名为 user 而不是成员,反之亦然。由于之前的member,它无法读取角色的属性,它是未定义的。如果您将 Roles 部分更改为 embed.addField('Roles:', user.roles.cache.map(r =>${r}).join(' | ')) 那么它可能会起作用,这完全是关于 const 命名问题。希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2021-02-27
      • 1970-01-01
      • 2021-04-19
      • 2021-03-15
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      • 2023-01-14
      • 2020-07-14
      相关资源
      最近更新 更多