1. 程式人生 > 實用技巧 >【vue】elementUI報錯:_self.$scopedSlots.default is not a function

【vue】elementUI報錯:_self.$scopedSlots.default is not a function


Vue會盡可能高效地渲染元素,通常會複用已有元素而不是從頭開始渲染。

這樣也不總是符合實際需求,所以 Vue 為你提供了一種方式來表達“這兩個元素是完全獨立的,不要複用它們”。只需新增一個具有唯一值的key屬性即可。見詳情

錯誤程式碼

<!-- 程式碼塊1 -->
<el-table-column label="授信申請狀態" v-if="type">
  <template slot-scope="scope">{{ scope.row.data2 | format }}</template>
</el-table-column>
<!-- 程式碼塊2 -->
<el-table-column prop="data1" label="聯絡人手機" v-else
></el-table-column>

報錯分析

如果優先顯示程式碼塊1,然後改變type值,顯示程式碼塊2,這時Vue為了快速渲染頁面,會優先拿程式碼1的程式碼渲染到程式碼塊2的位置,但是程式碼塊2並沒有定義slot-scope,這時就會報標題錯誤。

解決方案

  1. 給使用v-ifv-else的地方加上key
  2. 將v-ifv-else換成v-show