【问题标题】:Having Arrays as the value of a field v13 gives an error将数组作为字段 v13 的值会产生错误
【发布时间】:2021-12-04 22:21:32
【问题描述】:

所以我创建了这个使用嵌入的命令,它使用了我可以输入字符串的列。它通过将值作为数组来实现这一点。但是在 V13 中这似乎不起作用,它不断出现同样的错误:

RangeError [EMBED_FIELD_VALUE]:MessageEmbed 字段值必须是非空字符串

嵌入看起来像 V12:

V12 代码:

const embed = new Discord.MessageEmbed()
        .setTitle("Embed Title")
        .setColor("DC143C")
        .addFields(
            { name: "\u200B", value: "\u200B" },
            { name: "Field 1:", value: `Value`, inline: true },
            { name: "Field 2:", value: `Value`, inline: true },
            { name: "Field 3:", value: `Value`, inline: true },
            { name: "\u200B", value: "\u200B" },
            {
                name: `Column 1`,
                value: ["word", "word", "word", "word", "word"],
                inline: true,
            },
            {
                name: `Column 2`,
                value: ["word", "word", "word", "word", "word"],
                inline: true,
            },
            {
                name: `Column 3`,
                value: ["word", "word", "word", "word", "word"],
                inline: true,
            }
        );

如何在 Discord.JS v13 中实现相同的目标?

【问题讨论】:

    标签: node.js discord.js


    【解决方案1】:

    试试:

    const embed = new Discord.MessageEmbed()
            .setTitle("Embed Title")
            .setColor("DC143C")
            .addFields(
                { name: "\u200B", value: "\u200B" },
                { name: "Field 1:", value: `Value`, inline: true },
                { name: "Field 2:", value: `Value`, inline: true },
                { name: "Field 3:", value: `Value`, inline: true },
                { name: "\u200B", value: "\u200B" },
                {
                    name: `Column 1`,
                    value: ["word", "word", "word", "word", "word"].join('\n'),
                    inline: true,
                },
                {
                    name: `Column 2`,
                    value: ["word", "word", "word", "word", "word"].join('\n'),
                    inline: true,
                },
                {
                    name: `Column 3`,
                    value: ["word", "word", "word", "word", "word"].join('\n'),
                    inline: true,
                }
            );
    

    现在只有字符串可以是字段值,见https://discordjs.guide/additional-info/changes-in-v13.html#strings

    【讨论】:

    • 对不起,如果我很笨。但我看不出我的代码和那个代码有什么区别。我也不太明白“添加空格将使字符串非空”是什么意思。我应该在哪里添加空间?
    • @KraftaN in "\u200B",把它变成 "\u200B",或者直接复制粘贴我的代码
    • 解决方案没有解释实际改变了什么,重要的是为什么,不是很有价值。人们不应该成为人类差异工具来寻找变化
    • 这意味着您的答案仅依赖于链接的解释,没有该链接就无法独立存在。这不是 SO 的工作方式。链接应该只支持答案中明确显示的内容。 “尝试”的解释毫无意义。解释“出于______原因将X更改为Y”真的那么麻烦吗?
    • 就像我已经提到的对您所做的更改的简单解释以及为什么在解释问题和解决方案方面有很长的路要走。没有支持链接,答案应该完全独立。链接可能会在未来腐烂
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 2016-01-09
    • 2016-02-08
    • 2019-12-19
    相关资源
    最近更新 更多