obsługa zdarzenia zmiany w formularzu kilku pól input

0

Cześć, jest sobie kilka pól input w formularzu, którego onChange realizowane jest przez następującą funkcję


      handleChange (evt) {
        var tablica={};
        this.setState({ [evt.target.name]: evt.target.value });
        tablica[evt.target.name] = evt.target.value;
         
        console.log('tabid'+tablica.id);
        console.log('tabfn'+tablica.fullName);
        console.log('tabln '+tablica.lastName);
        console.log('tabdob '+tablica.dateOfBirth);
        console.log('tabcompo '+tablica.company);
        console.log('tabnote '+ tablica.note);

       
      }

czyli najpierw aktualizujemy state, a potem budujemy obiekt z zawartością pól formularza. W zasadzie to co state ale to ma być dalej przerabiane niezależnie a nawet wysłane na zewnątrz
Rozchodzi się o to, że o ile state buduje się poprawnie to już tablica nie. Przypuszczałem, że uda się tam zapisać wszystkie pola formularza, jednak jeżeli w formularzu przeniosę się z jednego pola do drugiego, w tablicy to co było w poprzednim polu znika, a zaczyna się pojawiać drugie. Natomiast w state wszystko jest w porządku; tyle , że ja chcę na tym etapie stworzyć lokalną zmienną. Te kilka console logów jest właśnie do kontroli sytuacji
Dlaczego tak sie dzieje, co źle napisałem?

0

Dlaczego tak sie dzieje, co źle napisałem?

Twoja zmienna tablica (która jest tak właściwie najczystszym przykładem obiektu, nie tablicy) jest zmienną lokalną - każde wywołanie funkcji zawiera własną wersję tej zmiennej.

Musiałbyś umieścić zmienną tablica poziom wyżej (np. jako pole klasy, wewnątrz której masz tę funkcję handleChange).

1 użytkowników online, w tym zalogowanych: 0, gości: 1