TypeError:无法读取Discord.js中未定义的属性'cache'

问题描述 投票:0回答:1

因此,我正在使用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个回答
0
投票

首先,在使用case "whois"打开案例的地方,您将不需要冒号(:)。其次,发生这种情况是因为您将成员命名为user,而不是成员,反之亦然。由于之前为member,因此无法读取角色的属性,因此未定义。如果将“角色”部分更改为embed.addField('Roles:', user.roles.cache.map(r => $ {r} ).join(' | ')),则可能会起作用,这全都与const命名问题有关。希望对您有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.