2016-07-15 65 views
0

我是新手後端開發人員,我一直負責添加一些反應功能,而且我完全沒有深度。以下代碼會生成異常「無法設置未定義的屬性'1'」。第一個元素是id:1和name:「」。我不認爲空字符串與我的問題有任何關係,儘管我已經試過硬編碼一個字符串,並且得到相同的異常。JavaScript無法設置undefined的屬性

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 [「身份證」]和payment_code [「名」]不爲空或未定義。日誌報表證實了這一點。對於超級基本問題抱歉,但我已經廣泛地搜索了這個問題,並且這個錯誤仍然毫無意義。在同一個班上有類似的功能,他們都工作。然而,其他方法使用常量數組,我需要從數據庫拉我的值。

+3

我想'displayChoices.payment_code'是什麼確切定義,僅低於你的日誌 – Meroje

+2

如何/在哪裏是'displayChoices'定義? – Timo

回答

1

我猜你顯示屬性是分配給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'] 
    } 
}), 
0

它看起來像是displayChoices.payment_code那是未定義的。 displayChoices已定義,或者它會抱怨爲此設置付款代碼,因此在運行此代碼塊之前,我會定義displayChoices.payment_code = []{}(具體取決於您要進行的操作)。或者您可能正在尋找displayChoices.paymentCodes,這將更像您之前選擇的adminSalesStore.paymentCodes,並且對我更有意義。不知道沒有看到更多的代碼。

相關問題