Discord.js 12.5.3 调用原生API添加多按钮时第二个组件无法识别如何解决
问题原因
你的消息组件嵌套结构不符合Discord官方规范:type=1的Action Row是唯一的按钮容器,所有同组按钮需要平级放在Action Row的components数组中。你将Deny按钮错误嵌套到了Accept按钮的components属性下,因此第二个按钮无法被识别。
修正后代码
client.api.channels(applicationChannelId).messages.post({ data: { embeds: [application], components: [{ type: 1, // Action Row 容器类型 components: [ // Accept 按钮 { type: 2, style: 3, label: "Accept", custom_id: "accept" }, // Deny 按钮,与Accept平级存放 { type: 2, style: 4, label: "Deny", custom_id: "deny" } ] }] } })
额外注意
Discord.js 12.5.3版本本身没有内置消息组件的相关封装,如果你后续需要监听按钮点击交互,需要自行监听底层的交互事件,或者升级到v13及以上版本使用官方原生的组件操作API。
内容的提问来源于stack exchange,提问作者foreverlost
相关产品推荐
相关产品推荐

