Jak odczytać właściwość wczytanego obiektu?

Jak odczytać właściwość wczytanego obiektu?
Dev007
  • Rejestracja:ponad 3 lata
  • Ostatnio:25 dni
  • Postów:161
0

W komponecie chce odczytać id, ale dostaję undefined. Jak odczytać

Kopiuj
<View style={styles.container}>
    <FlatList
      numColumns={4}
      data={hours}
      keyExtractor={(item) => item.id}
      renderItem={({ item }) => (<HoursComponent {... item} />)} />
Kopiuj
const HoursComponent = ({id, time}) => {
    const [bgColor, setBgColor] = useState('');
    const [markedHour, setMarkedHour] = useState('');

    console.log(typeof id);

    const onPress = () => {
        if(bgColor == '') {
            console.log("Time " + time + " ID " + id)
            setBgColor(Colors.sandy)
        }else{
            setBgColor('#00000000');
        }
    }

    const TimewithoutLast3 = time.slice(0, -3);
    return (
      <TouchableOpacity style={{...styles.rootContainer, backgroundColor: bgColor}}>
          <Text style={styles.buttonText} onPress={onPress}>{TimewithoutLast3}</Text>
      </TouchableOpacity>
    );
}

W backend godzina jest zdefiniowana tak

Kopiuj
Hours first = new Hours(1l, LocalTime.of(9, 00));
edytowany 1x, ostatnio: Riddle
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:33 minuty
  • Lokalizacja:Koszalin
  • Postów:10094
1

Zrób

Kopiuj
const HoursComponent = (props) => {
    console.log(props); 

    // [...]
}

I zobacz co dostajesz w properties.

Dev007
  • Rejestracja:ponad 3 lata
  • Ostatnio:25 dni
  • Postów:161
0

dostaje [object Object]

edytowany 1x, ostatnio: Riddle
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:2 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
1

dostaje [object Object]

To masz tablice z jednym elementem. Teraz zrób console.log(props[0]);


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 1x, ostatnio: Riddle
LukeJL
to wygląda bardziej jak obiekt przymuszony/skonwertowany do stringa (np. ({}).toString() w JS daje właśnie stringa "[object Object]"
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:33 minuty
  • Lokalizacja:Koszalin
  • Postów:10094
3
Dev007 napisał(a):

dostaje [object Object]

To spróbuj zrobić

Kopiuj
console.log(JSON.stringify(props));
Dev007
  • Rejestracja:ponad 3 lata
  • Ostatnio:25 dni
  • Postów:161
0

Mam jeszcze pytanie w tej chwili jak wybieram jedną z godzin oznacza mi się onna kolorm. Propem w tym że jak raz oznaczę/wybiorę godzinę, następnie wybiorę inną i znów chce wybrać tą początkową to już nie mogę. Nie mogę ani "nacisnąć" tej godziny, nie dzieje się nic w logach ani nie zmiena się kolor. W czym jest problem ?

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8423
1
Kopiuj
<View style={styles.container}>
    <FlatList
      numColumns={4}
      data={hours}

czym jest hours? Na tym poziomie przydałoby się zrobić console.log(hours)

ogólnie mam wrażenie, że gdybyś używał console.log (albo debuggera, niektórzy gardzą console.log i preferują debugger), to sam byś rozwikłał swój problem. Po nitce do kłębka. Patrzysz, gdzie masz jakieś wartości, skąd one się biorą i gdzie jest problem. Trzeba aktywnie podchodzić, być jak detektyw. Jeśli umiesz przekazywać wartości w dół, to powinieneś umieć też sprawdzać wartości na kolejnych poziomach. Bo gdzieś może być błąd (w ogóle co dostajesz z backendu? Dostajesz prawidłowe dane?)

Tak samo tutaj:

Kopiuj
 renderItem={({ item }) => (<HoursComponent {... item} />)} />

jak wygląda item na tym poziomie?


edytowany 4x, ostatnio: LukeJL
JB
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 15 godzin
  • Lokalizacja:Holandia
  • Postów:851
0

A nie da rady tak

Kopiuj
let lista=Object.getOwnPropertyNames(item);

?


Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.