Wpis z mikrobloga

Probuje napisac odtwarzacz rozdań pokerowych w #react i react router. Mam takie komponenty:
-główny App
--Home (jakas glowna strona startowa co by w App zostawic tylko routing)
--UploadHand (upload rozdania)
--ReplayHand (odtwarzanie rozdania)

Upload rozdania dziala na zasadzie wklejenia i wyslania tekstowego stringa z historia rozdania, ktory komponent replayera potem parsuje i odtwarza graficznie rozdanie. Wszystko bylo spoko dopoki formularz do wklejania historii mialem w komponencie App, ale chyba tak sie nie robi a poza tym docelowo raczej nie bedzie to startowa strona mojego projektu, wiec podzielilem to tak jak widac. Problem w tym, ze ReplayHand wtedy bylo dzieckiem komponentu z formularzem (App) a teraz jest jego "rodzenstwem" i nie wiem jak prawidlowo przekazac propsy (string z formularza). Help plz i nie bijcie jesli robie jakas glupote bo jestem kompletnym amatorem

#programowanie #naukaprogramowania #javascript
  • 21
@klamkaodokna: zrób sobie jakiegoś wrappera w którym wywolasz UploadRelay, przekaz mu propsem jakąś metodę zapisująca dane w useState z wrappera i wtedy prosty conditional rendering z replayHand i przekazaniem rozdania jako props
via Wykop Mobilny (Android)
  • 0
@Dreszczyk: parser w większości ukradłem z gotowego projektu na githubie (vikcch/riropo), resztę jednak musiałem robić od zera bo był to zbyt duży projekt abym jako noob mógł ogarnąć jak działa i zmodyfikować pod swoje potrzeby.
@Rst00: dzieki za zainteresowanie, troche sie sfrustrowalem, ze tak mala zmiana rodzi tyle problemow i tez nie do konca zrozumialem co miales na mysli, ze wrocilem na dzis do punktu wyjscia

rozumiem, ze ma to wygladac tak:
~
~~
~~~

~~

i wtedy gdzie dac jakie propsy, gdzie jakie state etc.?
@klamkaodokna:

nie, nie. Coś takiego miałem na myśli:

~
~~
~~~
~~~

i w UploadWrapper robisz const [hand, setHand] = React.useState('');

i wtedy w UploadHand jak już od usera przejmiesz plik to robisz setHand(zuploadowanyplik)

i automatycznie dane (hand) trafią do komponentu ReplayHand
@Rst00: dobrze, ale czy w przyszlosci gdy bede mial zapisane np. na serwerze jakies gotowe rozdania do odtworzenia, ktore uploadowalem juz wczesniej i np. bede chcial miec do nich navlink na stronie startowej albo w jakims side panelu dostepnym z kazdej "podstrony" tej aplikacji, czy też w oddzielnym komponencie np , ktory bedzie rodzenstwem wrappera to bedzie to mozliwe w takim wypadku?
@klamkaodokna: no ale to przecież nie ma żadnego problemu.

to uniwersalny komponent a skąd Ty weźmiesz dane do propsa hand to już Twoja sprawa. Równie dobrze możesz po zuploadowaniu rozdania zapisywać go na serwerze, później zrobić sobie jakąś listę z rozdaniami które będzie linkować do konkretnego rozdania i w komponencie routingowym robisz sobie fetch'a po id z URLa i dane przekazujesz analogicznie do: