首页 > 解决方案 > 如何使用 discord.js v13 为下拉菜单设置默认值

问题描述

我正在制作一个帮助命令,当您执行它时,会显示一个带有下拉菜单的嵌入以选择一个类别。代码工作得很好,但我只是想知道如何为下拉菜单设置默认值。任何人都可以帮助我吗?

我的代码是:

const helpEmbed = new Discord.MessageEmbed()
            .setColor(696969)
            .setTitle("No category selected")

        const select = new Discord.MessageSelectMenu()
            

        for (const category of categoriesFolders) {
            const len = category.length;

            if (fs.readdirSync(`./commands/${category}`).length < 1) {continue};
            select.addOptions([{
                label: uppercaseFirst(category.substring(0, len - '-commands'.length)),
                value: category.substring(0, len - '-commands'.length)
            }]);
        }
        
        const row = new Discord.MessageActionRow().addComponents(select);
        
        const filter = (interaction) =>
            interaction.isSelectMenu() &&
            interaction.user.id === message.author.id;

        const collector = message.channel.createMessageComponentCollector({
            filter
        })

        collector.on('collect', async(collected) => {
            const value = collected.values[0];

            const embed = new Discord.MessageEmbed()
                .setColor(696969)


            const fls = fs.readdirSync(`./commands/${collected.values[0]}-commands`).filter(file => file.endsWith('.js'));
            for (const cmd of fls) {
                const command = require(`../${collected.values[0]}-commands/${cmd}`)
        
                let val = `${command.name}`
                embed.addField(val, command.description);
            }

            collected.message.edit({ embeds: [embed] }).catch(() => {});
            await collected.deferUpdate();
        })

        message.channel.send({ embeds: [helpEmbed], components: [row] });

标签: javascriptnode.jsdiscorddiscord.jsdropdown

解决方案


要使下拉菜单值之一默认,您需要添加default到您的值之一并将其设置为true


推荐阅读