国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

當(dāng)變數(shù)改變時,Vue 3重新載入元件
P粉090087228
P粉090087228 2023-12-27 20:06:22
0
1
615

如果 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 以獲取選定聯(lián)賽中的最佳得分手。

我嘗試過:watch、v-on:、created()

P粉090087228
P粉090087228

全部回覆(1)
P粉344355715

確實(shí)當(dāng)selectedLeague更改時重新渲染1 ,但它不會重新安裝。 只有當(dāng) selectedLeaguefalsy 值變更為 truthy 值時才會掛載(因?yàn)榇藭r v-if 變更)。

您的問題存在一些問題:

  • 您詢問的是技術(shù)方面(我們稱之為 X),您認(rèn)為這將解決業(yè)務(wù)需求(我們稱之為 Y)。這是一個經(jīng)典的 XY 問題。為什麼不描述 Y 的要求? (例如:您想要實(shí)現(xiàn)的目標(biāo))。您希望在輸入變更時看到什麼輸出變化?
  • 您發(fā)布的程式碼不足以創(chuàng)建可運(yùn)行範(fàn)例。我們不知道v-select 是什麼, 是什麼,或:is 屬性在##.
根據(jù)您發(fā)布的程式碼片段,我猜以下內(nèi)容:

  • v-selectvue-selectVuetify 選擇元件
  • #您期望
  • :is 上的工作方式與在 上的工作方式相同。提示:不會,除非你自己編碼,我對此表示懷疑
  • 最後但並非最不重要的一點(diǎn)是,我想您希望將一些程式碼放入
  • 的init 生命週期掛鉤中(例如:onMounted)在您將selectedLeague 中儲存的物件替換為另一個物件。
如果我是正確的,實(shí)作此行為的最簡單、最乾淨(jìng)的方法是建立一個計(jì)算

2

const leagueId = computed(() => selectedLeague?.id.toString() || '')
...並在

v-if、:key:selectedLeague 中使用它:

<LeagueTopScorers
  v-if="leagueId"
  :selectedLeague="leagueId"
  :key="leagueId" />
(沒有

包裝器)。 每次

leagueId 更改時,上面都會建立一個 的新實(shí)例,並且僅在 leagueId 不為 false 時渲染一個。我相信這就是您在技術(shù)上想要實(shí)現(xiàn)的目標(biāo)3#。


註解:
1 - 要驗(yàn)證,請使用onUpdated(() => console.log('updated...'))代碼>
2 - 如果selectedLeague,則使用selectedLeague.value?.id.toString()是一個ref
#3 - 同時,我確信無需創(chuàng)建 每次leagueId 更改時,但如果沒有更多詳細(xì)資訊和/或上下文,我無法提供更多幫助

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板