【问题标题】:cannot read property 'tag' of undefined, discord.js economy无法读取未定义、discord.js 经济的属性“标签”
【发布时间】:2021-10-28 08:48:03
【问题描述】:

我的代码有问题,我收到以下错误:Cannot read property 'tag' of undefined。我希望你能帮助我。 :)

if(message.content.toLowerCase() === `${prefix}rich` || message.content.toLowerCase() === `${prefix}lb` || message.content.toLowerCase() === `${prefix}leaderboard`) {
            let money = db.all().filter(data => data.ID.startsWith(`wallet`)).sort((a, b) => b.data - a.data)
            money.length = 10
            var finalLb = ""
            for(var i in money) {
                finalLb += `**${money.indexOf(money[i])+1})** ${client.users.cache.get(money[i].ID.slice(6)).tag} :- \`$${money[i].data.toLocaleString()}\`\n`
            }
            const embed = new Discord.MessageEmbed()
            .setAuthor(`Global LeaderBoard`, client.user.displayAvatarURL({ dynamic: true }))
            .setTimestamp()
            .setColor('RANDOM')
            .setDescription(`
${finalLb}
            `)
            message.channel.send(embed)
        }

【问题讨论】:

标签: javascript discord.js


【解决方案1】:

我认为正在发生的事情是您正在寻找的用户尚未被缓存,因此您得到的是 undefined 而不是用户。

可以通过将${client.users.cache.get(money[i].ID.slice(6)).tag} 替换为以下内容来解决此问题,这将从所有可用用户中获取用户:

${(await client.users.fetch(money[i].ID.slice(6))).tag}

请注意,您必须在异步函数(带有关键字 async 的函数)中执行此操作,或者,如果您愿意,也可以在由fetch 函数。

我还建议您添加某种错误处理,以防此操作仍然失败,因为它仍然可以,但是我相信我上面提到的是您的代码无法正常工作的主要原因。

【讨论】:

    猜你喜欢
    • 2022-06-10
    • 2021-06-27
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 2021-04-14
    • 2021-11-17
    • 1970-01-01
    相关资源
    最近更新 更多