Vue3 Props沒有默認(rèn)值但報(bào)錯(cuò)的解決方案
Vue3解決 Props 沒有默認(rèn)值而報(bào)錯(cuò)的問題
先看代碼,封裝一個(gè)面包屑組件,里面的內(nèi)容需要?jiǎng)討B(tài)變化,于是用到了 props:
"<template> <div> <el-breadcrumb separator="/" class="ml-12 mt-2"> <el-breadcrumb-item :to="{ path: '/' }">首頁</el-breadcrumb-item> <el-breadcrumb-item><a href="/methods/zuzhi" rel="external nofollow" >解決方案</a></el-breadcrumb-item> <el-breadcrumb-item>{{ lessons.cargoLessons[props.activeIndex].name }}</el-breadcrumb-item> </el-breadcrumb> </div> </template> <script setup lang="ts"> const props = defineProps({ activeIndex: Number, }); const lessons = ... </script>
出現(xiàn)報(bào)錯(cuò):activeIndex 可能未賦值。
解決方案
使用 Vue3的 withDefaults
方法,給 activeIndex
一個(gè)默認(rèn)值:
<script setup lang="ts"> import { withDefaults, defineProps } from 'vue' const props = withDefaults(defineProps<{ activeIndex: number }>(), { activeIndex: 0 // Assigning a default value of 0 }); const lessons = { cargoLessons: [ ... ] } </script>
在這個(gè)例子中,activeIndex 屬性被賦予了一個(gè)默認(rèn)值 0。這意味著如果沒有為組件提供 activeIndex 屬性,它將自動(dòng)取值為 0。報(bào)錯(cuò)也就解決了。
拓展:vue中props設(shè)置默認(rèn)值
一般情況下
props寫法
props:{ obj: { type: Object, default: () => {} }, arr: { type: Array, default: () => [] } }
但是,如果初始化的時(shí)候就使用里面的值,可能會(huì)出現(xiàn)沒有該值的情況,此時(shí)就會(huì)報(bào)錯(cuò)。
應(yīng)該使用以下有默認(rèn)值的寫法
props:{ obj: { type: Object, default: function () { return { obje: '' } } }, arr: { type: Array, default: function () { return [] } } }
到此這篇關(guān)于Vue3 Props沒有默認(rèn)值但報(bào)錯(cuò)的解決方案的文章就介紹到這了,更多相關(guān)Vue3 Props報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue+ElementUI實(shí)現(xiàn)訂單頁動(dòng)態(tài)添加產(chǎn)品數(shù)據(jù)效果實(shí)例代碼
本篇文章主要介紹了vue+ElementUI實(shí)現(xiàn)訂單頁動(dòng)態(tài)添加產(chǎn)品效果實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07實(shí)例詳解Vue項(xiàng)目使用eslint + prettier規(guī)范代碼風(fēng)格
這篇文章主要介紹了Vue項(xiàng)目使用eslint + prettier規(guī)范代碼風(fēng)格,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2018-08-08淺析vue cli3 封裝Svgicon組件正確姿勢(推薦)
這篇文章主要介紹了vue cli3 封裝Svgicon組件正確姿勢,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04vue2更改data里的變量不生效時(shí),深層更改data里的變量問題
這篇文章主要介紹了vue2更改data里的變量不生效時(shí),深層更改data里的變量問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03詳解三種方式解決vue中v-html元素中標(biāo)簽樣式
這篇文章主要介紹了三種方式解決vue中v-html元素中標(biāo)簽樣式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11Vue中的基礎(chǔ)過渡動(dòng)畫及實(shí)現(xiàn)原理解析
這篇文章主要介紹了Vue中的基礎(chǔ)過渡動(dòng)畫原理解析,需要的朋友可以參考下2018-12-12