• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Renderowanie obiektów jako komponenty - ReactNative

Object Storage Arubacloud
0 głosów
141 wizyt
pytanie zadane 2 stycznia 2019 w JavaScript przez Al3x Użytkownik (870 p.)

Witam wszystkich, natrafiłem na dość nową sytuację z którą już długo nie mogę sobie poradzić także zwracam się z problemem tutaj. Z backendu (firebase + node) otrzymuje przykładowe dane:

Object {
   "-LVAJKVhDR7tK5GDHVq-": Object {
     "description": "Task",
     "id": "1wem1vcjqe9llak",
     "name": "New",
   },
   "-LVAJP0oA6IvxXl3XWub": Object {
     "description": "Task",
     "id": "1wem1vcjqe9lzki",
     "name": "Next on",
   },
   "1wem7qgjqe9h4p2": Object {
     "description": "Task",
     "id": "1wem7qgjqe9h4p2",
     "name": "News",
   },
 }

Chciałbym na podstawie tego renderować komponenty w react-native. Zwykle robiłem to funkcją map ale miałem przy tym tablice, a w firebase niestety takie rozwiązanie nie wchodzi w grę.

Dodam też, ze nie wiem jakie będą klucze tych wartości, są generowane przez bazę.

komentarz 2 stycznia 2019 przez ScriptyChris Mędrzec (190,190 p.)

Zwykle robiłem to funkcją map ale miałem przy tym tablice, a w firebase niestety takie rozwiązanie nie wchodzi w grę.

Jakiej struktury danych oczekuje Firebase?

Dodam też, ze nie wiem jakie będą klucze tych wartości, są generowane przez bazę.

Jeśli zrobisz to jako obiekt, to możesz klucze nazwać dynamicznie. 

komentarz 2 stycznia 2019 przez Al3x Użytkownik (870 p.)
Tak tylko one musza mieć unikalne nazwy. Po prostu co jakiś czas będę dodawał taska i muszę uniknąć powtórzeń. Jakby dane były w tablicy to po prostu bym je zmapował i nie musiał się przejmować ile tych danych faktycznie jest i co jest w środku.

Firebase nie ma natywnego wsparcia dla tablic. Dane muszą być w postaci klucza i wartości.

1 odpowiedź

+1 głos
odpowiedź 2 stycznia 2019 przez Tomek Sochacki Ekspert (227,510 p.)

a nie możesz tego po prostu zmapować na tablicę? Na przykład tak na szybko:

Object.entries(obj).map(([_id, val]) => ({_id, ...val}));
[
  {_id: "-LVAJKVhDR7tK5GDHVq-", description: "Task", id: "1wem1vcjqe9llak", name: "New"}, 
  {_id: "-LVAJP0oA6IvxXl3XWub", description: "Task", id: "1wem1vcjqe9lzki", name: "Next on"},
  {_id: "1wem7qgjqe9h4p2", description: "Task", id: "1wem7qgjqe9h4p2", name: "News"}
]

i masz tablicę obiektów. Kwestia czy w ogóle potrzebujesz te dwa ID ale to już zostawiam Tobie, chodzi mi o zasadę, aby zmapować obiekt na tablicę i po niej normalnie przeiterować.

Albo przeiterować sobie po prostu po wartościach obiektu: 

Object.values(obj);
[
  {description: "Task", id: "1wem1vcjqe9llak", name: "New"},
  {description: "Task", id: "1wem1vcjqe9lzki", name: "Next on"},
  {description: "Task", id: "1wem7qgjqe9h4p2", name: "News"}
]

jeśli wystarczą Ci tylko wartości.

Podobne pytania

0 głosów
1 odpowiedź 112 wizyt
pytanie zadane 10 listopada 2021 w JavaScript przez Kazek Początkujący (460 p.)
0 głosów
2 odpowiedzi 232 wizyt
0 głosów
3 odpowiedzi 1,026 wizyt

92,565 zapytań

141,418 odpowiedzi

319,602 komentarzy

61,951 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...