Это изменение, когда я вызываю прослушиватель событий (вместо метода onClick в элементе, потому что я использую bootstrap select2).
getReviewVacancyUpdate(post_id) {
console.info(post_id);
}
componentDidMount() {
$('#post_list').on('change', function(e) {
this.getReviewVacancyUpdate(this.value); //function in undefined
});
}
Есть ли способ сохранить предыдущее это состояние? Может, привязать? И вызовите компонентный метод. Без ошибки - "function is undefined"
Я могу добавить класс в начало jsx.
var Child = React.createClass({
statics: {
getReviewVacancyUpdate: function(post_id) {
console.info(post_id);
return true;
}
},
// ...
render() {
}
});
Но это не выглядит хорошо





Поэтому я добавляю переменную let, чтобы сохранить этот контекст перед вызовом метода изменения. И все работает нормально.
componentDidMount() {
let save_this = this;
$('#post_list').on('change', function(e){
let selected = $(e.currentTarget).find("option:selected").val();
save_this.getReviewVacancyUpdate(selected);
}).bind(this);
}