我是一个新手后端开发人员,我的任务是添加一些响应功能,而我完全不了解。以下代码生成异常“无法设置未定义的属性'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']
    }
}),

07-24 18:02
查看更多