You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 09:43:10