【问题标题】:TypeError: Cannot read property 'varName' of undefinedTypeError:无法读取未定义的属性“varName”
【发布时间】:2020-07-26 01:29:17
【问题描述】:

这是我的代码。我不断收到TypeError: Cannot read property '' 的未定义和类似错误。

const data = cache.actions[cache.index];
let varName = this.evalMessage(data.varName, cache);
let storage = parseInt(data.storage);
let info = parseInt(data.info);
let time = parseInt(data.time);
const { msg } = cache
const { guild } = cache

if (guild.varName === undefined) {
guild.varName = new Set();
}
    if (message.guild.varName.has(msg.author.id)) {
            channel.send("info");
            console.log("Restriction active!");
} else {

        message.guild.varName.add(msg.author.id);
        setTimeout(() => {

        message.guild.varName.delete(msg.author.id);
        }, time);
        
    }`

【问题讨论】:

  • “消息”从何而来?
  • @TheRealPikachu 你不想使用 guild.varName 但 guild[varName] 到处使用动态对象属性。
  • 你的错误在哪一行?

标签: javascript discord discord.js


【解决方案1】:

看起来这里有两个主要问题。首先,您在此代码中的任何地方都没有消息收集器。消息收集器类似于

client.on('message', function() {
    //some code here
}

这会等待机器人接收消息,然后执行函数内部的任何操作。我看到的第二个问题是您有一个变量 varName 并且您正在尝试使用该变量访问 guild 的属性。在您的代码中,您使用了点表示法,但在尝试使用变量访问属性时,点表示法不起作用。您的代码会查找名为 "varName" 的公会属性(请注意,它是一个字符串),而您应该查找名为 无论varName 的值是什么的属性。为此,您可以使用guild[varName]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 2019-08-19
    • 1970-01-01
    相关资源
    最近更新 更多