Responsejs этот контекст изменяется внутри метода изменения, как функция вызова

Это изменение, когда я вызываю прослушиватель событий (вместо метода 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() {

}
});

Но это не выглядит хорошо

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
67
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поэтому я добавляю переменную 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);
}

Другие вопросы по теме