当前位置: 首页 > 知识库问答 >
问题:

我得到错误不能读取属性'通道'的未定义

陈宏胜
2023-03-14

我收到一个错误无法读取未定义的属性“channels”

(节点:2632)未经处理的PromisejectionWarning:TypeError:无法读取模块处未定义的更新成员(C:\Users\Asus\Desktop\Section 50\commands\Main commands\Mod\member count.js:5:31)的属性“channels”。在客户端导出(C:\Users\Asus\Desktop\section 50\commands\Main commands\Mod\member count.js:13:5)。(C:\Users\Asus\Desktop\section 50\index.js:48:5)在对象上。客户端的onceWrapper(events.js:421:28)。在WebSocketManager上发出(events.js:315:20)。WebSocketManager上的triggerClientReady(C:\Users\Asus\Desktop\Section 50\node\u modules\discord.js\src\client\websocket\WebSocketManager.js:431:17)。在WebSocketShard上选中ShardsReady(C:\Users\Asus\Desktop\Section 50\node_modules\discord.js\src\client\websocket\WebSocketManager.js:415:10)。(C:\Users\Asus\Desktop\section 50\node\u modules\discord.js\src\client\websocket\WebSocketManager.js:197:14)在WebSocketShard。在WebSocketShard上发出(events.js:315:20)。checkReady(C:\Users\Asus\Desktop\section 50\node\u modules\discord.js\src\client\websocket\WebSocketShard.js:475:12)

这是我的代码

module.exports = (client) => {
    const membercountchannel = '811119579580465182' 

    const updateMembers = (guild) => {
        const channel = guild.channels.cache.get(membercountchannel)
        channel.setName(`Member:- ${guild.memberCount.toLocaleString()}`) 
    }
    
    client.on('guildMemberAdd', (member) => updateMembers(member.guild))
    client.on('guildMemberRemove', (member) => updateMembers(member.guild))

    const guild = client.guilds.cache.get('787083837833871400') 
    updateMembers(guild)
}

共有1个答案

左丘凡
2023-03-14

如果检查堆栈跟踪,您可以看到您的updateMembers函数接收到一个未定义的guildmember count.js:5:31)。在下一行中,您可以看到它来自最后一行(membercount.js:13:5):updateMembers(guild)

当您在上面定义guild一行时,它的意思是client。行会。隐藏物get('7870837833871400')返回未定义。确保公会ID是正确的。如果正确,你可以尝试取回公会。

还有一点,永远不要在事件处理程序中添加事件处理程序。我想你已经在client.on('消息')中了。每次有人使用您的命令更新成员数时,您都会创建两个新的事件监听器(client.on('GuidMemberAdd')client.on('GuidMemberRemove')),这将导致问题(内存泄漏)。您需要在命令之外的其他地方处理这些问题。

module.exports = async (client) => {
  const updateMembers = (guild) => {
    const memberCountChannel = '811119579580465182';
    const channel = guild.channels.cache.get(memberCountChannel);
    channel.setName(`Member:- ${guild.memberCount.toLocaleString()}`);
  };

  try {
    const guild = await client.guilds.fetch('787083837833871400');
    updateMembers(guild);
  } catch (error) {
    console.log(error);
  }
};
 类似资料:
  • 我的主代码我正在尝试制作一个不和谐的机器人我得到了这个错误类型错误无法读取'execute'的属性未定义我有每一个解决方案,但它仍然有一些错误,如果有人解决它将不胜感激。我试图使一个简单的迪斯科机器人,但代码不仅工作请hlep。 我的踢码

  • 我最近开始工作的量角器使用黄瓜框架。我创建了我自己的第一个示例测试,得到了以下错误 [launcher]正在运行%1个WebDriver实例[launcher]错误:TypeError:无法读取function.configuration(/usr/local/lib/node_modules/cucumber/lib/cucumber/cli/configuration.js:8:11)在/us

  • 我想在我的角度项目中添加钢系列。我有createad html-compass组件,但我收到了这个错误: _services错误类型错误:无法读取未定义的属性(读取主题)在ProjectService…/app/Subject.js:53/_next(node_modules)在_esm5__tryOrUnsub[EventEmitter.push.](node_modules)在_esm5…/c

  • 问题内容: 我是Reactjs的新手。我正在尝试做一个非常简单的事情:当用户在文本区域内更改文本时,在render函数中更新div。有什么建议? 问题答案: 您应该绑定该函数。您收到此错误的原因是,在handleChange函数中,键盘操作未引用React类的上下文,因此您需要绑定该函数。 看到这个答案

  • 我搜索了这个网站,发现了类似的问题,但没有解决我的问题。当我滚动到一个div时,我试图使它固定在屏幕顶部。但我一直在犯错误: "(index): 59未捕获类型错误:无法读取未定义的属性'top'at(index): 59" 我还在学习jQuery,不能解决这个问题。

  • 问题内容: 我正在使用jQuery将表单字段发布到PHP文件,该文件仅根据是否工作而返回1/0。 代码摘录: 但是,每次成功(html == 1)时,控制台都会引发错误“未捕获的TypeError:无法读取未定义的属性’defaultView’”,并且警报永远不会发生…? Google似乎没有关于此错误和jQuery的大量信息,谁知道原因? 问题答案: 这是因为以前不是您要处理的内容,现在是jQu