最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue使用provide各種傳值后inject獲取undefined的問題及解決

 更新時(shí)間:2022年08月25日 09:13:13   作者:AzeShinja  
這篇文章主要介紹了Vue使用provide各種傳值后inject獲取undefined的問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用provide各種傳值后inject獲取undefined

首先使用provide是為了方便孫子組件獲取爺爺組件的數(shù)據(jù)

就比如下方想使用provide把table的refs分派給每個(gè)孫子組件

但是provide是先于mounted執(zhí)行的,導(dǎo)致dom還沒有搭建完成就發(fā)送給了子組件,所以子組件inject后值為undefined

所以我想要不給一個(gè)響應(yīng)式數(shù)據(jù),這樣在爺爺組件中的mounted對(duì)其進(jìn)行賦值后孫子組件也能同步更新

這樣子組件就能正常獲取它的值了

不知道還有沒有更好的解決方法,如果有請(qǐng)?zhí)呶乙幌? o( ̄▽ ̄)ブ

不如直接讓爺爺組件傳this

但是傳遞this后為undefined怎么辦?

原來的寫法:

  provide: {
    $examRouter: this,
  },

得改成函數(shù)的寫法就好了:

  provide() {
    return {
      $examRouter: this,
    }
  },

inject接收不到provide中的值

一、question???

1. provide傳值

這個(gè) layoutModel 在data中默認(rèn)值是1,然后通過接口請(qǐng)求,改變它的值

2. inject接收值

此時(shí)父組件的值為3,但是inject接收到的值為1

二、Why

因?yàn)槭墙涌谡?qǐng)求更新數(shù)據(jù),但provide在初始的時(shí)候就傳了一個(gè)固定的初始值下去,所以下級(jí)組件接收到的是初始值,而不是更新后的值

三、Answer

在data定義的時(shí)候采用對(duì)象的形式,這樣就是傳一個(gè)地址過去 而不是一個(gè)固定的值

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

类乌齐县| 增城市| 鲁甸县| 衡南县| 申扎县| 宝坻区| 东港市| 淳安县| 泰安市| 阜阳市| 东安县| 唐河县| 绍兴市| 虞城县| 北辰区| 新绛县| 靖江市| 高要市| 衡山县| 砀山县| 阿克陶县| 大宁县| 浦城县| 晋江市| 新密市| 昭平县| 民县| 阳东县| 大庆市| 枣庄市| 安平县| 镇原县| 宾阳县| 奉化市| 拉孜县| 阳西县| 车险| 仲巴县| 铁岭县| 皮山县| 海口市|