vue3父組件對多個子組件校驗(yàn)、校驗(yàn)定位方法

需求:父組件點(diǎn)擊保存按鈕時嘀掸,對多個子組件中的表單進(jìn)行校驗(yàn)

解決方法:

父組件

<child
   ref="childRef"  // 第一步:給每個子組件標(biāo)簽添加ref
 >
</child>
<script setup>
const childRef= ref()  // 第二步:聲明常量

 const save = ()=>{  // 保存事件
    const child= abilityRuleFormRef.value.ruleFormRef // 第六步:獲取子組件暴露出的變量
    const childRES = new Promise((resolve, reject) => { // 創(chuàng)建Promise實(shí)例紫岩,為多個組件校驗(yàn)使用
        child.validate((valid, fields) => {
          if (valid) {
            resolve()
          } else {
            Object.keys(fields).forEach((v, index) => { // 第七步:通過scrollToField()方法完成校驗(yàn)定位
              if (index === 0) {
                const propName = fields[v][0].field
                child.scrollToField(propName)
              }
            })
            reject()
          }
        })
      })
    // 多個子組件校驗(yàn)
   Promise.all([formElRES, abilityRES, developRES, reprotMessageRES])
      .then(()=>{
        console.log('這里完成接口請求')
      })
      .catch(err => {
      ElMessage({
        message: '必填項(xiàng)不能為空',
        type: 'error'
      })
    })
     }
</script>

子組件

<template>
  <div class="child">
    <el-form ref="ruleFormRef"  // 第三步:給子組件表單添加ref
       :rules="rules.baseInfoRules"
       :model="data.personBesicInfo"
    >
    </el-form>
  </div >
</template>

<script setup>
const ruleFormRef = ref() // 第四步:聲明常量
const rules = reactive({  // 校驗(yàn)規(guī)則
  baseInfoRules: { }
})
const data = reactive({
    personBesicInfo: {}  
})

defineExpose({ ruleFormRef })  // 第五步:通過defineExpose,將需要的變量與方法都暴露出去
</script>

這里解釋一下:
使用<script setup> 睬塌,是默認(rèn)關(guān)閉的泉蝌,是一個閉環(huán)


完成校驗(yàn)動作
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市揩晴,隨后出現(xiàn)的幾起案子勋陪,更是在濱河造成了極大的恐慌,老刑警劉巖硫兰,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诅愚,死亡現(xiàn)場離奇詭異,居然都是意外死亡劫映,警方通過查閱死者的電腦和手機(jī)违孝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泳赋,“玉大人雌桑,你說我怎么就攤上這事∽娼瘢” “怎么了校坑?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長千诬。 經(jīng)常有香客問我耍目,道長,這世上最難降的妖魔是什么徐绑? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任邪驮,我火速辦了婚禮,結(jié)果婚禮上泵三,老公的妹妹穿的比我還像新娘耕捞。我一直安慰自己衔掸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布俺抽。 她就那樣靜靜地躺著敞映,像睡著了一般。 火紅的嫁衣襯著肌膚如雪磷斧。 梳的紋絲不亂的頭發(fā)上振愿,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機(jī)與錄音弛饭,去河邊找鬼冕末。 笑死,一個胖子當(dāng)著我的面吹牛侣颂,可吹牛的內(nèi)容都是我干的档桃。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼憔晒,長吁一口氣:“原來是場噩夢啊……” “哼藻肄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拒担,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤嘹屯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后从撼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體州弟,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年低零,在試婚紗的時候發(fā)現(xiàn)自己被綠了婆翔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡掏婶,死狀恐怖浙滤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情气堕,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布畔咧,位于F島的核電站茎芭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏誓沸。R本人自食惡果不足惜梅桩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拜隧。 院中可真熱鬧宿百,春花似錦趁仙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至痊焊,卻和暖如春盏袄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背薄啥。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工辕羽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人垄惧。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓刁愿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親到逊。 傳聞我的和親對象是個殘疾皇子铣口,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容