我知道已经有关于此问题的预先存在的问题,并且我已尝试实施 what this answer suggested 但无济于事。它甚至没有在这个问题中发布的代码中使用。
正如第二个“资源”所建议的,即使我要编辑嵌入对象本身,它也会给我错误 TypeError: Cannot read property 'edit' of undefined
,如 a similar SO question 所述。稍微翻阅文档后,我意识到 MessageEmbed
对象本身没有 edit
方法,这让我非常困惑(来源:Discord.js Documentation)。
client.on('message', message => {
//could be triggered via a different method, but it's only meant to test the !edit command
const StandardEmbed = new Discord.MessageEmbed()
.setTitle('Test')
.setDescription('Description')
message.channel.send(StandardEmbed);
if (message.content === '!edit') {
//oldEmbed is rather extraneous, I don't even call it at all...
//let oldEmbed = message.channel.messages.fetch('833863581073932329');
const embed = new Discord.MessageEmbed()
.setTitle("New Embed!")
.setDescription("Description")
.addField('name', 'value');
message.edit(embed);
}
});
Client#message
侦听器可能重要,也可能不重要。
我正在尝试在用户发送消息后编辑嵌入,例如。 "!edit" 但我收到了一个错误(在标题中提到)。
答案 0 :(得分:2)
也许像:
message.channel.messages.fetch('833863581073932329').then(msg =>{
const embed = new Discord.MessageEmbed()
.setTitle("New Embed!")
.setDescription("Description")
.addField('name', 'value');
msg.edit(embed)
})
您正在尝试编辑 let oldEmbed
但您做了 message.edit
这意味着您正在尝试编辑 !edit