使用.awaitMessageComponent()无法接收选择菜单交互的问题
问题求助:discord.js选择菜单交互无法被捕获
编辑:已根据waki285的回答修复代码,但问题仍存在。
根据discord.js组件交互指南,我尝试在交互回复上调用.awaitMessageComponent()实现选择菜单功能,代码如下:
const selectMenu = new StringSelectMenuBuilder() .setCustomId("roleselect") .setPlaceholder("Select your role!") .addOptions( { label: "role1", value: "role1" }, { label: "role2", value: "role2" } ); const prompt = await this.interaction.reply({ content: "Please select your role!", ephemeral: true, components: [ new ActionRowBuilder<StringSelectMenuBuilder>().addComponents( selectMenu ), ], }); const menuInteraction = await prompt.awaitMessageComponent({ filter: (interaction) => interaction.user.id === this.interaction.user.id, time: 600 * 1000, componentType: ComponentType.StringSelect, }); const selectedRoleValue = menuInteraction.values[0];
选择菜单可以正常渲染:
但选择选项后,交互失败,代码无法执行到selectedRoleValue赋值行:
该交互确实被我的client.on("interactionCreate", ...)代码捕获(仅记录未处理),但未被prompt.awaitMessageComponent()捕获。我还尝试改用组件收集器,同样无法捕获交互。
恳请各位提供帮助!
内容的提问来源于stack exchange,提问作者Step
相关产品推荐
相关产品推荐

