Vynulování persistentního parametru, který je v komponentě mojí komponenty
- Kcko
- Člen | 468
Asi jsem to pojmenoval divně, leč je to jednoduché.
Mám komponentu A, která extendí od B (ve které je továrnička na paginátor a komponenta tohoto paginátoru má v sobě persistentní parametr p jako "číslo stránky).
Součastí komponenty A jsou nějaké persistentní parametry. A já potřebuji vyresetovat při překlikávání těchto parametrů i stránkování na 1 nebo na null (ideálně).
Takže ukázkový příklad:
(year i filter jsou persistentní parametry „B“ komponenty)
<a n:href=„setYear! $year, filter ⇒ null
nebo
<a n:href="setFilter! archived, year ⇒ null“
To je OK, resetuje se to správně, ale stránkování se mi přenáší.
Takže podle logiky věci bych měl nastavit něco jako
<a n:href=„…, $control[paginator]->p ⇒ null“ a samozřejmě se
mi nic nevyresetuje.
Když si to zkusím mimo odkaz např.
// jaké je číslo aktuální stranky
{$control[paginator]->p} // např. 4
{$control[paginator]->p => null} // reset
{$control[paginator]->p} // nic ..
Takže mimo odkaz to funguje, jakmile to dam do odkazu mám smůlu :)
Dělám něco blbě s tím odkazem nebo jak to nastavit?
Editoval Kcko (18. 10. 2021 21:32)
- Polki
- Člen | 553
Možná se to dozvíš z přednášky Honzy Tvrdíka.
Ještě jsem to sice nepoužíval, ale tipoval bych nějak takto? :
<a n:href=„setYear! $year, filter ⇒ null, paginator-p ⇒ null>Nastav rok</a>
kde paginator je název komponenty, - říká, že se se bude brát něco z ní a p je persist proměnná.
Ber v potaz, že komponenta umí vždy pracovat jen s podřízenými komponentami. Takže paginator musí být komponenta tvořená pomocí createComponent uvnitř komponenty B (případně A)
To, co jsi napsal ty
<a n:href=„…, $control[paginator]->p ⇒ null“
samozřejmě nic resetovat nemůže, protože tím říkáš v aktuálním
požadavku mi to po vykreslení odkazu vyresetuj. Tím ale, co jsem napsal já
říkáš v tomto konkrétním požadavku to nech jak to je, ale jakmile někdo
klikne na odkaz, tak to zresetuj.
Taky měj na paměti, že takové odkazy je dobré tvořit jen tam, kde opravdu očekáváš změnu v paginátoru. Pokud by jsi tedy například jen aktualizoval počet notifikací, nebo chat apod, tak není dobré explicitně specifikovat hodnotu paginátoru, protože by to zbytečně tvořilo komponentu, kterou by to pak nevykreslilo a zasekal by sis server.
- Kcko
- Člen | 468
Polki napsal(a):
Já to chápu. :D Taky se občas musím podívat do nějakého staršího projektu, jak jsem to dělal u věcí, co použiju jen 1× za projekt.
Já se prostě kaju, protože je to simple, ale vypadlo mi to z hlavy a na
tu přednášku si pamatuju – na oba způsoby :).
Někdy člověk prostě zapomene (po práci dělám ještě větší soukromý
projekt, kterému věnuju zbytek volného času, do toho se člověk učí
i jiné věci – Vue, Tailwind … a mozek občas řekne nasr**, nevytáhnu
to ze slotu :).
Každopádně ještě jednou díky.