Vue使用provide各種傳值后inject獲取undefined的問題及解決
使用provide各種傳值后inject獲取undefined
首先使用provide是為了方便孫子組件獲取爺爺組件的數(shù)據(jù)
就比如下方想使用provide把table的refs分派給每個孫子組件
但是provide是先于mounted執(zhí)行的,導致dom還沒有搭建完成就發(fā)送給了子組件,所以子組件inject后值為undefined
所以我想要不給一個響應式數(shù)據(jù),這樣在爺爺組件中的mounted對其進行賦值后孫子組件也能同步更新
這樣子組件就能正常獲取它的值了
不知道還有沒有更好的解決方法,如果有請?zhí)呶乙幌? o( ̄▽ ̄)ブ
不如直接讓爺爺組件傳this
但是傳遞this后為undefined怎么辦?
原來的寫法:
provide: { $examRouter: this, },
得改成函數(shù)的寫法就好了:
provide() { return { $examRouter: this, } },
inject接收不到provide中的值
一、question???
1. provide傳值
這個 layoutModel 在data中默認值是1,然后通過接口請求,改變它的值
2. inject接收值
此時父組件的值為3,但是inject接收到的值為1
二、Why
因為是接口請求更新數(shù)據(jù),但provide在初始的時候就傳了一個固定的初始值下去,所以下級組件接收到的是初始值,而不是更新后的值
三、Answer
在data定義的時候采用對象的形式,這樣就是傳一個地址過去 而不是一個固定的值
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Element?UI?Upload?組件上傳圖片可刪除、預覽功能
這篇文章主要介紹了Element?UI?Upload?組件?上傳圖片可刪除、預覽,設(shè)置只允許上傳單張?/?多張圖片的操作,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-11-11vuex如何在非組件中調(diào)用mutations方法
這篇文章主要介紹了vuex如何在非組件中調(diào)用mutations方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03vue Nprogress進度條功能實現(xiàn)常見問題
這篇文章主要介紹了vue Nprogress進度條功能實現(xiàn),NProgress是頁面跳轉(zhuǎn)是出現(xiàn)在瀏覽器頂部的進度條,本文通過實例代碼給大家講解,需要的朋友可以參考下2021-07-07Vue+Express實現(xiàn)登錄注銷功能的實例代碼
這篇文章主要介紹了Vue+Express實現(xiàn)登錄,注銷功能,本文通過實例代碼講解的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05vue element-ui 綁定@keyup事件無效的解決方法
遇到vue element-ui 綁定@keyup事件無效的問題怎么解決?下面小編就為大家分享一篇vue element-ui 綁定@keyup事件無效的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03vue3使用useDialog實現(xiàn)對話框的示例代碼
在日常開發(fā)中,彈窗是常見的一個功能,本文主要介紹了vue3使用useDialog實現(xiàn)對話框的示例代碼,具有一定的參考價值,感興趣的可以了解一下2024-01-01