constructor() {
super()
this.state = {
privilegesOption: privilegesOption: [{
key: 1,
text: "Admin",
value: 1
}, {
key: 2,
text: "Cashier",
value: 2
}]
}
this.foo = this.foo.bind(this)
}
foo() {
let privilegesOut = this.state.privilegesOption.find(e => e.value === 1);
console.log(privilegesOut.text)
}
为什么在使用.find之后调用对象属性,为什么仍然出现此错误? 如果我使用this.state.privilegesOption [0] .text,它会起作用
答案 0 :(得分:0)
与此有关的一些错误最好在某些空间得到解决,我想您正在尝试做的是,我已将privilegesOption
转换为包含对象[]
的数组{}
其中对象key:value对用逗号,
this.state = {
privilegesOption: [
{
key: 1,
text: "Admin",
value: 1
},
{
key: 2,
text: "Cashier",
value: 2
}
]
}
对于find
值为1的对象,您完全正确
let privilagesOut = this.state.privilegesOption.find(x => x.value == 1)
答案 1 :(得分:0)
您发布的代码段语法错误(请按“运行代码段”查看)。 这是带有固定语法错误的完整代码段:
class Y {}
class X extends Y {
constructor() {
super();
this.state = {
privilegesOption: [
{
key: 1,
text: "Admin",
value: 1
},
{
key: 2,
text: "Cashier",
value: 2
}
]
};
let privilegesOut = this.state.privilegesOption.find(e => e.value === 1);
console.log(privilegesOut.text);
}
}
new X();
它成功在控制台上输出“ Admin”。