Я пытаюсь реализовать функцию с помощью Pusher-JS в приложении React-native, но мне трудно соответствующим образом обновить состояние переменной в этом приложении.
Вне основного класса я определяю
var pusher = new Pusher('xxxxxxxsome number and code');
Внутри компонента основного класса я определяю функцию
test() {
var channel = pusher.subscribe('test_channel');
console.log('ddddddd');
channel.bind('my_event', function(data) {
if (data != null) {
if (data.message != null){
console.log(data.message);
this.setState({
message_box: data.message
});
}
}
}.bind(this));
}
и я помещаю test() в функцию render(), как показано ниже.
render() {
this.what();
...
Приложение зависает, когда я отправляю текстовое сообщение (с сервера тестирования pusher) на «test_channel» (в мобильном приложении). Когда я вижу журнал в консоли Chrome, console.log('dddddd') и console.log(data.message) продолжают очень быстро прокручиваться вниз (похоже, что test() часто перерисовывается).
Я попытался взять test() вне render(), но я не знаю, как отдельно поместить и обновить переменную состояния вне основного компонента.
Есть ли способ стабилизировать эту функцию или установить состояние вне основного компонента (этого)?
Пожалуйста, поделитесь со мной любой идеей!
Лучший