Реакция обратного вызова метода установки состояния не запускается - PullRequest
0 голосов
/ 23 ноября 2018

У меня странный вопрос о функции обратного вызова set state в React.В React 15 все работает нормально, но как только я обновил версию реагирования до 16, функция обратного вызова заданного состояния не срабатывает.Я перепробовал почти все, но я не мог четко выяснить, что вызывает эту проблему.

Я пытался связать функцию в конструкторе, используя анонимную функцию внутри метода set state, но ни один из них на самом деле не работал.

Затем я попытался понизить версию реакции до 15 и запустил проект, и мне удалось запустить метод обратного вызова (проверено путем помещения окна предупреждения в функцию обратного вызова).

Вот точныйкод, который я использую в моем примере проекта:

Эта функция вызывается нажатием кнопки

incrementCounter() {
    this.setState({
        currentCount: this.state.currentCount + 1
    }, this.callbackfuncsajad.bind(this));
}

Это функция обратного вызова установленного состояния

callbackfuncsajad = () => {
    alert('in the callback');
}

Это мой package.json, чтобы проверить, есть ли какое-либо несоответствие версий:

  • "реагировать": "^ 15.6.2"
  • "реагировать-дом": "^ 16.6.3"
  • " @ Типы / реагировать ":" ^ 15.0.35 "
  • " @ Типы / реагировать-дом ":" ^ 15.5.8 "
  • " машинопись ": "2.4.1"

В качестве примечания: я использую стандартный шаблон React.JS для Visual Studio 2017 ASP.NET дляу проекта.По умолчанию проект поставляется с React 15 вместе с машинописью.

Было бы очень полезно, если бы кто-нибудь мог разобраться с этой проблемой.

Спасибо.

1 Ответ

0 голосов
/ 23 ноября 2018

Привет, я думаю, это связано с родительским контекстом, поэтому попробуйте что-то вроде этого.

incrementCounter() {
this.setState({
    currentCount: this.state.currentCount + 1
}, () => { this.callbackfuncsajad() });

}

Надеюсь, это поможет.Если вы все еще сталкиваетесь с этой проблемой, пожалуйста, поделитесь кодом для правильного вывода.

...