javascript - TypeError:无法读取未定义的属性“表情符号”
问题描述
我正在尝试为我的不和谐机器人制作表情符号反应,在我单击“❌”表情符号之前一切正常,但是当我单击“❌”时 表情符号我收到此错误:TypeError: Cannot read property 'emoji' of undefined
错误显示这一行:if (reaction.emoji.name === '❌')
const Discord = require("discord.js");
const ayarlar = require("../ayarlar.json");
module.exports.run = async (bot, message, args) => {
let gonderenKisi = message.author;
let mesaj = args.slice(0).join(" ");
if(!mesaj) return message.reply("**➤ Mesaj Atabilmek İçin Bir Mesaj Yazmalısın!**").then(message => {
message.delete({ timeout: 5000 });
});
const filter = (reaction, user) => {
return ['❌'].includes(reaction.emoji.name) && user.id === message.author.id;
};
const sEmbed = new Discord.MessageEmbed()
.setDescription(`➤ ` + mesaj)
.setAuthor(`➤ Yeni Bir Fotoğraf Paylaşıldı !`)
.setThumbnail(message.guild.iconURL())
.setColor('RANDOM')
.setFooter(`➤ Fotoğraf Atan: ${message.author.username}`, message.author.displayAvatarURL())
.setTimestamp(message.createdAt)
message.delete();
message.channel.send(sEmbed).then(e =>
e.react("❤️")).then(e =>
e.message.react("❌")).catch(e => {
console.error('Emojiler De Sorun Var.');
});
message.awaitReactions(filter, { max: 1 })
.then(collected => {
const reaction = collected.first();
if (reaction.emoji.name === '❌') {
collected.on('collect', () => {
message.delete();
var s2Embed = new Discord.MessageEmbed()
.setTitle(`${message.author.username} Mesajın Silindi.`)
.setColor('RANDOM')
.setDescription(`Mesajı Silen : ${message.author.username}`, message.author.displayAvatarURL())
message.channel.send(s2Embed)
});
}
}).catch(e => {
console.error(e)
})
};
module.exports.config = {
name: 'instagram',
aliases: ['i']
}
解决方案
错误的实际原因是这一行:
const reaction = collected.first();
此处反应的值未定义,因此您收到错误消息。您正在尝试读取未定义值的表情符号属性。您可以将条件更改为:
if (reaction && reaction.emoji && reaction.emoji.name){
////logic
}
此外,我可以看到不和谐版本中存在一些问题,这可能会给您一个未定义的值。检查这个线程它可能会帮助你。
推荐阅读
- reactjs - 在材料表中的单元格编辑条件下可编辑
- python - 错误:由于 OSError 无法安装软件包:[Errno 28] 设备站点上没有剩余空间:stackoverflow.com
- python - 无法找到到达包括障碍物在内的目标的最短距离
- xml - 如何在 Google Script 中获取 SOAP 响应的特定值
- go - 如何在 Azure 管道中使用 Go Beta/RC 版本
- r - 转换为数字后仍然不是 R 中的数字格式
- python - 旋转框值反映在由 for 循环制作的另一个旋转框中
- typescript - 我可以使用 Sentry 以便跟踪 TS 源代码,即使它已被编译为 Javascript?
- python - Python- TypeError:无法将系列转换为
- c# - ASP.NET 母版页页面加载事件