我是一个新手后端开发人员,我的任务是添加一些响应功能,而我完全不了解。以下代码生成异常“无法设置未定义的属性'1'”。第一个元素是id:1和名称:“”。我不认为空字符串与我的问题有任何关系,因为我尝试对字符串进行硬编码并且得到了相同的异常。
payment_code: {
label: 'Payment Code',
value: 'payment_code',
choices: adminSalesStore.paymentCodes.map((payment_code) => {
console.log(payment_code);
console.log(payment_code['id']);
console.log(payment_code['name']);
displayChoices.payment_code[payment_code['id']] = payment_code['name'];
return {
label: payment_code['id'],
value: payment_code['name']
}
}),
type: 'choice'
},
我真的不明白该错误,因为payment_code ['id']和payment_code ['name']不为null或未定义。日志语句确认了这一点。对超级基本问题很抱歉,但是我已经对这个问题进行了广泛的搜索,并且此错误仍然毫无意义。在同一个类中有相似的功能,它们都起作用。但是,其他方法使用const数组,因此我需要从数据库中提取值。
最佳答案
我猜您显示的属性是displayChoices
分配的一部分,即:
displayChoices = {
...
payment_code: {
label: "Payment Code",
value: 'payment_code',
choices: adminSalesStore.paymentCodes.map((payment_code) => {
console.log(payment_code);
console.log(payment_code['id']);
console.log(payment_code['name']);
displayChoices.payment_code[payment_code['id']] = payment_code['name'];
return {
label: payment_code['id'],
value: payment_code['name']
}
}),
type: 'choice'
},
...
};
问题在于,在此语句完成之前,没有
displayChoices.payment_code
属性,因此无法分配给displayChoices.payment_code[anything]
。完成第一个作业后,您应该执行该作业。
displayChoices = {
...
payment_code: {
label: "Payment Code",
value: 'payment_code',
type: 'choice'
},
...
};
displayChoices.choices = adminSalesStore.paymentCodes.map((payment_code) => {
console.log(payment_code);
console.log(payment_code['id']);
console.log(payment_code['name']);
displayChoices.payment_code[payment_code['id']] = payment_code['name'];
return {
label: payment_code['id'],
value: payment_code['name']
}
}),