Собственный тайм-аут реакции с функцией

#time #react-native

#время #реагирующий собственный

Вопрос:

Я застрял, пытаясь заставить тайм-аут работать в моем проекте react-native, я использовал SO и нашел много ответов, объясняющих, что вы должны заставить его возвращать функцию, чтобы она выглядела так

             setTimeout(function(){this.countLosses(counter, losses)},1000);
  

В соответствии с

             setTimeout(this.countLosses(counter, losses),1000);
  

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

Функция, которую я пытаюсь вызвать, выглядит так

 countLosses(counter:number, losses:array){
        if (counter<5) {
            this.clicked(losses.pop())
            counter=counter 1;
            setTimeout(function(){this.countLosses(counter, losses)},1000);
        }else{
            this.state = {
        animateTime: false,
        selected:[],

         }
        }
}
  

Комментарии:

1. попробуйте это: setTimeout(() => {this.countLosses(counter, losses)},1000);

Ответ №1:

Хорошо, я наконец понял это

вы должны просто добавить bind, а затем это в скобках

итак

 setTimeout(this.countLosses.bind(this,counter, losses),1000);