Proč se po odeslání formuláře volají render a createComponent opačně
- Roman Halaxa
- Člen | 60
Zdravím,
Píšu do začátečníku protože se teď se zase jako začátečník cítím a zabil jsem s tím dopoledne :D
Mám formulář který potřebuje idéčko záznamu. Předával jsem si ho v renderDefault metodě. Jenže když jsem formulář odesílal, v on success už bylo id null. Šťoural jsem do toho a zjistil jsem že když přijdu na formulář poprvé tak id k dispozici je ale jakmile ho odešlu tak se volání createComponent a renderDefault prohodí a tudíž už v create component id neni.
Vyřešil jsem to tak že jsem místo v renderDefault předal id v actionDefault ale ze zvědavosti mě zajímá proč tomu tak je :D děkuji
- jiri.pudil
- Nette Blogger | 1032
Vyřešil jsem to tak že jsem místo v renderDefault předal id v actionDefault
To je ideálka :)
ale ze zvědavosti mě zajímá proč tomu tak je
Vytváření komponent je lazy, příslušná createComponent()
se volá až tehdy, kdy je potřeba si na komponentu sáhnout. To nastává
často až v šabloně, když se komponenta vykresluje, ovšem při odeslání
formuláře je nutné vytvořit komponentu a s ní i definici formuláře už
ve fázi zpracování signálů (protože odeslání formuláře je interně
signál), tedy před renderem.
Editoval jiri.pudil (26. 10. 2020 13:36)
- Roman Halaxa
- Člen | 60
jiri.pudil napsal(a):
Vyřešil jsem to tak že jsem místo v renderDefault předal id v actionDefault
To je ideálka :)
ale ze zvědavosti mě zajímá proč tomu tak je
Vytváření komponent je lazy, příslušná
createComponent()
se volá až tehdy, kdy je potřeba si na komponentu sáhnout. To nastává často až v šabloně, když se komponenta vykresluje, ovšem při odeslání formuláře je nutné vytvořit komponentu a s ní i definici formuláře už ve fázi zpracování signálů (protože odeslání formuláře je interně signál), tedy před renderem.
Díky moc, teď je mi to jasné.