无法读取未定义的属性“添加”

时间:2020-10-30 10:55:47

标签: javascript discord.js

经过一些调试后,它确实找到了角色。但是,当我运行它时,它将输出到控制台:

people.user1.roles.add(redRole); ^

TypeError:无法读取未定义的属性“ add”

这是为什么?

const people = {
  user1: String = "123456789101112131",
  user2: String = "123456789101112132",
}

let redRole = message.guild.roles.cache.find(role => role.name === "Red");
let blueRole = message.guild.roles.cache.find(role => role.name === "Blue");

people.user1.roles.add(redRole);
people.user2.roles.add(blueRole);
console.log("Roles added.")

1 个答案:

答案 0 :(得分:0)

首先从API获取要向其中添加角色的成员。就像找到角色对象一样,您还需要找到成员对象。在您的代码中,您尝试访问的是字符串的roles属性,而不是真正的member对象。

作为示例,假设您有一个id和一个role-object。您可以在message事件中将该角色添加到成员,如下所示:

const member = message.guild.members.cache.get('id');  // get the member
member.roles.add('role-object or its id');  // add a role to the member you got above

还请记住,usermemberdiscord.js中的两件事。您可以向member添加角色,但不能向用户添加角色。