如果 selectedLeague 已更改,我正在嘗試重新分配元件
<label class="label">Select league</label> <div class="selector"> <v-select v-model="selectedLeague" :dropdown-should-open="dropdownShouldOpen" :options="leagues" label="displayLeague" placeholder="Select a league" /> </div> <div v-if="selectedLeague"> <LeagueTopScorers :is="selectedLeague" :selectedLeague="selectedLeague.id.toString()" /> </div>
在 LeagueTopScorers 組件中,我正在獲取 API 以獲取選定聯賽中的最佳得分手。
我嘗試過:watch、v-on:、created()
確實當selectedLeague
更改時重新渲染1 ,但它不會重新安裝。 只有當selectedLeague
從 falsy 值變更為 truthy 值時才會掛載(因為此時v-if 變更)。
您的問題存在一些問題:
v-select
是什麼,
是什麼,或:is
屬性在是
vue-select 或 Vuetify 選擇元件在
的init 生命週期掛鉤中(例如:
onMounted)在您將
selectedLeague中儲存的物件替換為另一個物件。
2:
...並在v-if
(沒有、
:key和
:selectedLeague中使用它:
leagueId
更改時,上面都會建立一個
的新實例,並且僅在
leagueId不為 false 時渲染一個。我相信這就是您在技術上想要實現的目標
3#。註解:
1 - 要驗證,請使用onUpdated(() => console.log('updated...'))
代码>
2 - 如果selectedLeague
,則使用
selectedLeague.value?.id.toString()是一個
ref#3 - 同時,我確信無需創建
每次
leagueId更改時,但如果沒有更多詳細資訊和/或上下文,我無法提供更多幫助