Vynulování persistentního parametru, který je v komponentě mojí komponenty

Kcko
Člen | 382
+
0
-

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 | 552
+
+1
-

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 | 382
+
0
-

Tvl .. no jo, úplně se mi to vykouřilo z hlavy. Tu přednášku jsem samozřejmě viděl kdysi dávno, nějak mě to nenapadlo.
Nad slunce jasné, díky! :)

Kcko
Člen | 382
+
0
-

A nenapadlo mě to taky proto, že sem zapomněl, že se na subkomponentu dostanu jako $this[a-b], pouzivam jen $this[a][b]

Polki
Člen | 552
+
0
-

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.

Kcko
Člen | 382
+
+1
-

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.