Prasenie v Reacte a imperativny pristup

paradox

Prasenie v Reacte a imperativny pristup
« kdy: 16. 07. 2018, 15:53:24 »
Chcel by som si urobit custom alerty, confirmy a notifikacie a zobrazovat ich vsade kde som doteraz zobrazoval systemove alerty a confirmy.

Na vacsine miest appky som to napisal deklarativne tj menim stav a podla toho vo vnutri komponent zobrazujem dialog. Ale su miesta v appke mimo komponent kde by sa mi hodil imperativny pristup to znamena zavolat funkciu Dialog.show(<NejakyCustomConfirm onConfirm={() => ...}>). Funkcia show by obsahovala ReactDOM.render a mierila by do ineho kontainera ako je aplikacia. Je taketo prasenie akceptovatelne??? z pohladu vykonu je to urcite lepsie lebo sa tym obchadza redux, state a reactovy context takze sa v aplikacnom dive nic zbytocne nerenderuje.


gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:Prasenie v Reacte a imperativny pristup
« Odpověď #1 kdy: 16. 07. 2018, 16:02:50 »
Proč? Vyrendruje se vždy jen ten dialog. Normálně dejde do render funkce toho dialogu podmínku.

paradox

Re:Prasenie v Reacte a imperativny pristup
« Odpověď #2 kdy: 16. 07. 2018, 16:11:41 »
Proč? Vyrendruje se vždy jen ten dialog. Normálně dejde do render funkce toho dialogu podmínku.

jasne, ale su miesta v aplikacii ktore nie su vo vnutri komponenty, ale potrebujem tam trebars zobrazit chybovu hlasku, predtym tam bol len obycajny imperativny confirm.

Dali by sa prepisat aj cistym sposobom, premiestnnit zobrazovanie dialogu do komponenty, lenze tym by som skomplikoval cely kod a neviem ci to ma nejaky prakticky zmysel okrem cistoty kodu.

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:Prasenie v Reacte a imperativny pristup
« Odpověď #3 kdy: 16. 07. 2018, 16:41:45 »
jasne, ale su miesta v aplikacii ktore nie su vo vnutri komponenty, ale potrebujem tam trebars zobrazit chybovu hlasku, predtym tam bol len obycajny imperativny confirm.

když ten dialog umístíte mimo react komponenty, tak na něj React nemá žádný vliv. Můžete použít klidně jQuery. React komponenty také můžete umístit kamkoliv. Jestli se bavíme o modálním dialogu, tam je jedno kde je umístěný. Nevím v čem je problém.

.

Re:Prasenie v Reacte a imperativny pristup
« Odpověď #4 kdy: 16. 07. 2018, 17:05:20 »
Proč? Vyrendruje se vždy jen ten dialog. Normálně dejde do render funkce toho dialogu podmínku.

jasne, ale su miesta v aplikacii ktore nie su vo vnutri komponenty, ale potrebujem tam trebars zobrazit chybovu hlasku, predtym tam bol len obycajny imperativny confirm.

Dali by sa prepisat aj cistym sposobom, premiestnnit zobrazovanie dialogu do komponenty, lenze tym by som skomplikoval cely kod a neviem ci to ma nejaky prakticky zmysel okrem cistoty kodu.
Stále mi není jasný důvod. Pokud jsou to notifikace na aplikační úrovni, tak tu notifikační komponentu vložte na aplikační úroveň. A do stavu zapíšete notifikaci a ta se vyrendruje. Vždy existuje top level komponenta, třeba nazvaná App, a tam tu notifikaci vložte. V Reactu je vždy vše uvnitř nějaké komponenty.


paradox

Re:Prasenie v Reacte a imperativny pristup
« Odpověď #5 kdy: 16. 07. 2018, 17:53:19 »
dovod bol ze som chcel s minimom uprav nahradit confirmy a alerty reactovou komponentou. Myslel som si ze vo vysledku taketo vynimocne porusenie zasad prinesie menej kodu a bude to o nieco citatelnejsie.

Ale teraz ked sa na to pozeram, tak z toho kodu vobec nemam dobry pocit. musel som to odmountovavat cez unmountComponentAtNode a to je uz riadny humus a idem tie dialogy radsej supnut do Application a budem ich zobrazovat cez redux.