2017-02-01 52 views
0

我的分量代碼(SearchResultView.vue)是這樣的:如何解決:[Vue warn]:在vue.js 2上渲染組件時出錯?

<template> 
    ... 
</template> 

<script> 

    export default{ 
     props:['search','category','shop'], 
     created(){ 
      ... 
     }, 
     data(){ 
      return{ 
       loading:false 
      } 
     }, 
     computed:{ 
      list:function(){ 
       var a = this.$store.state.product; 
       a = JSON.stringify(a) 
       a = JSON.parse(a) 
       console.log(a.list[12]) 
       ... 
      } 
     }, 
     methods:{ 
      ... 
     } 
    } 
</script> 

當我檢查:console.log(a.list[12])在控制檯上,其結果:

enter image description here

我想要的顯示值名稱

我試試這樣:

console.log(a.list[12].name) 

在控制檯上,存在誤差是這樣的:

[Vue warn]: Error when rendering component at C:\xampp\htdocs\chelseashop\resources\assets\js\components\SearchResultView.vue:

Uncaught TypeError: Cannot read property 'name' of undefined

我怎樣才能解決這個錯誤嗎?

+0

由於這是一個渲染問題,您將需要對您使用的模板進行優化。大多數情況下,您可以在數據加載之前訪問數據或傳遞錯誤屬性 –

+0

「console.log(JSON.stringify(a.list [12]))''是什麼答案? – Saurabh

+0

@Saurabh,'{「id」:12,「name」:「Bunga Gandeng」,「photo」:「bunga6.jpg」,「price」:762913,「stock」:36,「total_sold」:54, total_view「:0,」weight「:68,」store_id「:1,」shop_name「:」Bunga Airi「,」formatted_address「:」Kemang「}' –

回答

2

因爲它是計算出來的,所以它的值可能會在程序生命期間發生變化。在嘗試從中獲取成員之前,您應該檢查以確保a.list[12]存在。

if (a.list[12]) 
    console.log(a.list[12].name);