Cześć,
mam pewien problem z Reactemjs.
Chodzi o przechwytywanie danych ze zdarzenia
Najprościej będzie jak najpierw dam kod, który działa:
this.state= {staff: this.props.initialStaffTable,
nonFilteredStaff:this.props.initialStaffTable,
filter:{firstName:'test'},
staffPerPage : 5,
currentPage : 1,
columnSortBy :null,
isSortDescending: false,
isFilterVisible: false,
filter_id: '',
filter_firstName: '',
filter_lastName: '',
filter_dateOfBirth:'',
filter_company:'',
filter_note:'',
};
.......
handleChange (evt) {this.setState({ ['filter_'+ evt.target.name]: evt.target.value });}
Na górze jest konstruktor a na dole funkcja przejmująca zdarzenia z formularza input. I to działa. Poprawnie zapisany jest również w konstruktorze obiekt filter:{firstName:'test'} (sprawdzone przez console.log w bloku render).
Ponieważ chciałem aby kod był zapisany bardziej poprawnie, zamiast kilku właściwości filter_coś tam chciałbym mieć jeden obiekt z odpowiednimi polami. I tu zaczęły sie schody.
this.state= {staff: this.props.initialStaffTable,
nonFilteredStaff:this.props.initialStaffTable,
filter:{id:'', firstName:'', lastName:'', dateOfBirth:'', company:'',note:''},
staffPerPage : 5,
currentPage : 1,
columnSortBy :null,
isSortDescending: false,
isFilterVisible: false,
filter_id: '',
filter_firstName: '',
filter_lastName: '',
filter_dateOfBirth:'',
filter_company:'',
filter_note:'',
};
..............
handleChange (evt) {this.setState({ ['filter.'+ evt.target.name]: evt.target.value });
console.log('ths.statefilterform event '+this.state.filter);
bo tak nie działa, co widzę po tym, że console.log produkuje komunikat
ths.statefilterform event [object Object]
Czyli nic się nie przypisuje :/
Co zrobiłem nie tak?