欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

使用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對其進(jìn)行賦值后孫子組件也能同步更新

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

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

不如直接讓爺爺組件傳this

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

原來的寫法:

  provide: {
    $examRouter: this,
  },

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

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

inject接收不到provide中的值

一、question???

1. provide傳值

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

2. inject接收值

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

二、Why

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

三、Answer

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

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

相關(guān)文章

最新評論