UI Multiplier v komponentě a nefunční ajax

Robin Martinez
Člen | 89
+
0
-

Ahoj, mám dotaz.

Píšu vlastní komponentu, která má funkci render:

public function render(int $centralProductID)

v latte následně volám:

{control remoteProductControl $prod['id']}

V komponentě používám ui multiplier, který funguje, ale když mu k tlačítkům add/remove přidám třídu ajax, po jejich stisknutí dostanu error:

Too few arguments to function App\Component\Remote\RemoteProductControl::render(), 0 passed in /home/martinez/Sites/central.local/vendor/nette/application/src/Bridges/ApplicationLatte/SnippetBridge.php on line 87 and exactly 1 expected

V nette se ve třídě ‚SnippetBridge‘ volá funkce render bez parametrů. Poradí někdo co mám špatně? Moc díky

Kamil Valenta
Člen | 758
+
+2
-

Je to tak. Při invalidaci komponenty se render() zavolá vždy bez parametrů.
S tím nehneš.
Volej render bez parametru a id si předej v createComponent…()
Tzn., že komponenta bude mít nějaký setter a render už jen sáhne na tento atribut.

Robin Martinez
Člen | 89
+
0
-

Rozumím, to mě nenapadlo. Díky!

Update: samozrejme funguje. Diky

Editoval Robin Martinez (28. 6. 2022 10:28)

MajklNajt
Člen | 471
+
0
-

Kamil Valenta napsal(a):

Je to tak. Při invalidaci komponenty se render() zavolá vždy bez parametrů.
S tím nehneš.
Volej render bez parametru a id si předej v createComponent…()
Tzn., že komponenta bude mít nějaký setter a render už jen sáhne na tento atribut.

ešte by sa to mohlo obaliť to do snippetArea, či to v tomto prípade nepomôže (neskúšal som)?

Robin Martinez
Člen | 89
+
0
-

MajklNajt napsal(a):

Kamil Valenta napsal(a):

Je to tak. Při invalidaci komponenty se render() zavolá vždy bez parametrů.
S tím nehneš.
Volej render bez parametru a id si předej v createComponent…()
Tzn., že komponenta bude mít nějaký setter a render už jen sáhne na tento atribut.

ešte by sa to mohlo obaliť to do snippetArea, či to v tomto prípade nepomôže (neskúšal som)?

to jsem zkousel, neslo…