W gąszczu bibliotek
Kto nigdy nie programował w JavaScripcie niech nie narzeka na ilość bibliotek w projekcie! Kto nigdy nie programował w Reactcie niech nie narzeka na problemy z integracją wielu bibliotek!
Tak mogę podsumować moje ostatnie zmagania z projektem.
Poprzednie wpisy z serii:
Po chwilowej przerwie związanej z innymi zajęciami znowu usiadłem do projektu.
Formularzu, cóż mi czynisz?!
W poprzednich wpisach mówiłem o mojej walce z walidacją formularza. Prostego formularza logowania. Nadal z nią walczę.
Chyba powinienem zmienić nazwę projektu na „How to validate?” :D
Po opisaniu problemów dostałem w komentarzu od czytelników nazwę kolejnej biblioteki. Tym razem związanej z obsługą formularzy w Reactcie. Nazywa się redux-form. Jak sama nazwa wskazuje jest związana z biblioteką Redux. I w rzeczy samej pozwala przechowywać stan formularza z wykorzystaniem Reduxa właśnie.
Zacząłem przeglądać wstęp i przykłady. Pierwsza rzecz jest taka, że nie pokazują w oficjalnych przykładach całego kodu, a po wejściu na GitHub kod ze strony i w plikach się różni. Druga sprawa to to, że bardzo słabo jest opisany wstęp. Tak na prawdę to gdybym nie przebrnął w ostatnim miesiącu przez tyle bibliotek to w życiu bym się tam nie odnalazł. Trzecia sprawa jest taka, że nie działa. Prawdopodobnie wynika to z pierwszego problemu. Dobrą godzinę szukałem czemu dostaję dziwny błąd w konsoli. Dopiero wtedy znalazłem jeden istotny szczegół w kodzie – metoda obsługi onSubmit miała być wstawiona w wywołanie jeszcze jednej metody z biblioteki. Łatwo to przeoczyć, a słowa o tym nie ma.
Zrobiłem formularz z walidacją tak jak było w przykładzie. Nie działa walidacja. W sumie to chyba nic nie działa. Żadnego błędu. Nie dostaję żadnej informacji zwrotnej z walidacji, nie wyświetla się tekst błędu. Dodatkowo przy submitowaniu formularza z jakiegoś niewyjaśnionego powodu usuwa mi wartość z pól mimo, że nic z nimi nie robię, a standardowe zachowanie formularzy HTMLa jest wyłączane.
Jak ktoś ma jakieś dobre artykuły czy tutoriale do tej biblioteki albo zna jeszcze jakąś związaną z obsługą formularzy to piszcie w komentarzach.
Praca musi nabrać tempa
Przez miesiąc mam wrażenie, że nie zrobiłem nic. Mimo, że w ciągu tego miesiąca poświęciłem na pracę w domu więcej czasu niż przez ostatnie pół roku to projekt stoi w miejscu.
Chyba jednak zabiorę się za pozostałe featury i aplikacja nie będzie w żaden sposób sprawdzała danych. Dopiero jak najważniejsze rzeczy będą działać to będę mógł marnować czas na walkę z milionem bibliotek do tego samego.
Walidacja z użyciem Reduxa brzmi jak idealny przykład rzeczy, której się robić nie powinno i dzięki której „wspaniała” społeczność JS zepsuła całkiem niezły ekosystem Reacta.
Właściwie ostatecznie to jest tak, że w Reduxie przechowuję wartości formularza, a waliduję ręcznie. Niestety widzę, że chcąc to zrobić dobrze trzeba się dużo więcej naklepać niż w normalnych językach gdzie dodaję bibliotekę do walidacji, której nie obchodzi jakiej biblioteki do divów używam :P