Dzień dobry,
mam taki problem
po kliknięciu w przycisk (<button>
) zostaje wykonana funkcja, która wczytuje dane do tablicy o nazwie zlecenie_zawartosc
Przykład: WczytajDaneDotablicy(53);
const [zlecenie_zawartosc, setzlecenie_zawartosc] = React.useState([]);
const WczytajDaneDotablicy = (id) => {
fetch("http://192.168.1.4:3333/pobierz_zlecenia_szczegolowe_wg_id/?id=" + id)
.then(res => res.json())
.then(json => setzlecenie_zawartosc(json));
}
przykład użycia:
const Przycisk_Wybierz = () => {
WczytajDaneDotablicy(wybrane_zlecenie);
console.log("Ilosc:", zlecenie_zawartosc[0].ilosc);
}
format pobranych danych z bazy danych:
[{"id":58,"kontrahent":"JanKowalski","telefon":123123129,"data_zbioru":"2022-10-31T23:00:00.000Z","ilosc":5,"typ_pisklecia":2,"uwagi":""}]
Niestety dane w tablicy nie są aktualizowane na bieżąco. co powoduje np: błąd podczas odczytu zawartości.
Uncaught TypeError: Cannot read properties of undefined (reading 'ilosc').
Domyślam się że należy tutaj wykorzystać useEffect()
tylko jak zbudować poprawnie algorytm?
Oto treść błędu:
Oto pełna treść błędu:
komponent_dokument_modyfikuj.js:149 Uncaught TypeError: Cannot read properties of undefined (reading 'ilosc')
at KomponentModyfikujDokument (komponent_dokument_modyfikuj.js:149:1)
at renderWithHooks (react-dom.development.js:16305:1)
at updateFunctionComponent (react-dom.development.js:19588:1)
at beginWork (react-dom.development.js:21601:1)
at beginWork$1 (react-dom.development.js:27426:1)
at performUnitOfWork (react-dom.development.js:26557:1)
at workLoopSync (react-dom.development.js:26466:1)
at renderRootSync (react-dom.development.js:26434:1)
at recoverFromConcurrentError (react-dom.development.js:25850:1)
at performSyncWorkOnRoot (react-dom.development.js:26096:1)
KomponentModyfikujDokument @ komponent_dokument_modyfikuj.js:149
renderWithHooks @ react-dom.development.js:16305
updateFunctionComponent @ react-dom.development.js:19588
beginWork @ react-dom.development.js:21601
beginWork$1 @ react-dom.development.js:27426
performUnitOfWork @ react-dom.development.js:26557
workLoopSync @ react-dom.development.js:26466
renderRootSync @ react-dom.development.js:26434
recoverFromConcurrentError @ react-dom.development.js:25850
performSyncWorkOnRoot @ react-dom.development.js:26096
flushSyncCallbacks @ react-dom.development.js:12042
(anonymous) @ react-dom.development.js:25651
a występuje przy wykonaniu poniższej linijki:
{wyswietl_panel && <KomponentModyfikujDokumentPanel ilosc={zlecenie_zawartosc[0].ilosc} wyswietl={wyswietl_panel} anuluj={UkryjPanel} dane={zlecenie_zawartosc} typ_pisklecia={zlecenie_zawartosc[0].typ_pisklecia} data_zbioru={zlecenie_zawartosc[0].data_zbioru} uwagi={zlecenie_zawartosc[0].uwagi}/>}
Pozdrawiam,
Łukasz