【问题标题】:I Can Understand This Error Someone Help Please [duplicate]我能理解这个错误请有人帮忙[重复]
【发布时间】:2022-01-31 16:35:45
【问题描述】:
  if(target.roles.cache.has('937250064894664734')){
                   ^

TypeError:无法读取未定义的属性(读取“缓存”) 在 Object.execute (C:\Users\mihri\OneDrive\Desktop\Adomis\Bot\Adomis-Bot\commands\mute.js:6:24) 在客户端。 (C:\Users\mihri\OneDrive\Desktop\Adomis\Bot\Adomis-Bot\main.js:57:37) 在 Client.emit(节点:事件:390:28) 在 MessageCreateAction.handle (C:\Users\mihri\OneDrive\Desktop\Adomis\Bot\Adomis-Bot\node_modules\discord.js\src\client\actions\MessageCreate.js:34:18) 在 Object.module.exports [as MESSAGE_CREATE] (C:\Users\mihri\OneDrive\Desktop\Adomis\Bot\Adomis-Bot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4: 32) 在 WebSocketManager.handlePacket (C:\Users\mihri\OneDrive\Desktop\Adomis\Bot\Adomis-Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:351:31) 在 WebSocketShard.onPacket (C:\Users\mihri\OneDrive\Desktop\Adomis\Bot\Adomis-Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22) 在 WebSocketShard.onMessage (C:\Users\mihri\OneDrive\Desktop\Adomis\Bot\Adomis-Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10) 在 WebSocket.onMessage (C:\Users\mihri\OneDrive\Desktop\Adomis\Bot\Adomis-Bot\node_modules\ws\lib\event-target.js:199:18) 在 WebSocket.emit (node:events:390:28)

错误

module.exports ={ 名称:'静音', 描述:“静音命令”, 执行(消息,参数){ 常量目标 = message.mentions.users.first(); if(target.roles.cache.has('937250064894664734')){ 如果(目标){ 让 mainRole = message.guild.cache.find(role => role.name === 'member') let mutedRole = message.guild.cache.find(role => role.name === 'muted')

        let memberTarget = message.guild.members.cache.get(target.id);
        memberTarget.roles.remove(mainRole.id)
        memberTarget.roles.add(mutedRole)

        message.channel.send("Kullanici Susturulmustur!")
    }

    else{
        message.channel.send("Kullanici Bulunamamistir!")
    }
   }

   else{
       message.channel.send("Bu Komutu Kullanmak Icin Yetkin Yoktur!")
   }
}

}

代码

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    表示target.roles还是target本身是未定义的。您应该首先对其进行验证,例如:

     if (target && target.roles && target.roles.cache && target.roles.cache.has('937250064894664734')) {
       ....
     }
    

    无论如何,你都可以

     if (target?.roles?.cache?.has('...')) {
      ...
     }
    

    【讨论】:

    • 可选链不是 TypeScript 独有的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多