第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么每次進(jìn)入路線時(shí)組件都會(huì)自我復(fù)制?

為什么每次進(jìn)入路線時(shí)組件都會(huì)自我復(fù)制?

手掌心 2021-04-20 17:14:04
我正在開(kāi)發(fā)我的第一個(gè)余燼應(yīng)用程序,但遇到組件問(wèn)題。我有一條路線可以加載多個(gè)組件。每個(gè)都加載以下范例:{{#each someList as |item|}}<MyComponent @item={{item}} />{{/each進(jìn)入路線時(shí)效果很好。但是,每次我離開(kāi)頁(yè)面并返回而沒(méi)有刷新時(shí),其中一個(gè)組件將再次呈現(xiàn)。我是Ember的新手。我嘗試使用組件生命周期掛鉤來(lái)強(qiáng)制重新渲染,但沒(méi)有成功。我也嘗試設(shè)置一個(gè)變量來(lái)檢查容器是否已經(jīng)加載,但是在離開(kāi)頁(yè)面時(shí)會(huì)重置。無(wú)法運(yùn)作:{{#each this.weapons as |weapon|}}    <CharacterWeaponDetail @weapon={{weapon}} />{{/each}}在職的:{{#each (this.skills) as |skill| }}    <SkillDetail    @skill={{skill}}     @character={{charactersheet}}     @chrSkills={{chrSkills}}     @charParam={{charactersheet.id}}     @action="filter"    @unUsedSP={{this.unUsedSP}}    @realtimeSkillPoints={{realtimeSkillPoints}}    @filter={{charactersheet.profession.name}}/> {{/each}} 說(shuō)每個(gè)組件加載兩次。第一次渲染時(shí),結(jié)果如下所示:<CharacterWeaponDetail /><CharacterWeaponDetail /><SkillDetail /><SkillDetail />這是預(yù)期的行為。但是,如果我使用{{link-to}}離開(kāi)路線而沒(méi)有完全刷新就返回,結(jié)果將如下所示:<CharacterWeaponDetail /><CharacterWeaponDetail /><CharacterWeaponDetail /><CharacterWeaponDetail /><SkillDetail /><SkillDetail />每次頁(yè)面加載<CharacterWeaponDetail />將再次重復(fù)。我該如何阻止這種情況的發(fā)生。
查看完整描述

1 回答

?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊

model()每次輸入路線時(shí),都會(huì)執(zhí)行路線的掛鉤。您將Weapon在每次執(zhí)行中創(chuàng)建新的。這些Weapon對(duì)象被推到weapons路線的屬性。路由是ember.js中的單例。在每次重新進(jìn)入路由時(shí),都會(huì)將更多Weapon對(duì)象推送到weapons屬性。


您可以通過(guò)不將weaponsas存儲(chǔ)為route的屬性來(lái)解決錯(cuò)誤,而在每次model()執(zhí)行掛鉤時(shí)都初始化一個(gè)新數(shù)組。您應(yīng)該在model鉤子中替換此代碼


for (let i = 0; i < characterWeapons.length; i++) {

  let weapon = Weapon.create();

  let weapons = this.get('weapons');


  // ...


  weapons.push(weapon);

}


let weapons = [];

for (let i = 0; i < characterWeapons.length; i++) {

  let weapon = Weapon.create();


  // ...


  weapons.push(weapon);

}

您根本不需要weapons在路線上存儲(chǔ)。而且,您不應(yīng)該確定每次循環(huán)for循環(huán)時(shí)都應(yīng)替換該屬性。


查看完整回答
反對(duì) 回復(fù) 2021-04-29
  • 1 回答
  • 0 關(guān)注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)