• O WordPressie
    • WordPress.org
    • Dokumentacja
    • Pomoc techniczna
    • Uwagi
  • Zaloguj się
Marek Zając Marek Zając
  • contact@zajacmarek.com Zapraszam do kontaktu
  • Strona główna
  • O mnie
  • Konsultacje
  • Kanał Youtube
  • 9 kwietnia 2017
  • Marek Zając
  • 2 Comments

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:

  • Wstęp
  • Kilka słów o projekcie
  • Pierwsza konfiguracja środowiska
  • Krótko o początkach z Reactem
  • Bardzo brzydkie style
  • Uruchomienie Reduxa i Routera
  • Jednak Bootstrap
  • Poprawki i nowości
  • Początek koszmaru – formularze
  • Gorzkie żale związane z walidacją

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.

Related Posts
  • Asynchroniczność w ASP.NET Core 16 stycznia 2020
  • Nie lubię TEGO projektu! 15 stycznia 2020
  • Pierwsze portfolio na GitHubie – Przewodnik 14 stycznia 2020
2 komentarze
  1. Reply
    katafrakt 19 kwietnia 2017

    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.

    • Reply
      Marek Zając 19 kwietnia 2017

      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

Leave a Comment Cancel Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Copyright 2020 Bizix, All rights reserved.
  • POLITYKA PRYWATNOŚCI I PLIKÓW COOKIES