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

В моем Angular проекте я получаю Несоответствующий запрос и обновление коллекции Ошибка от TSLint, когда я пишу следующий код:

export class SomeComponent implements OnInit {
    private wishes: Wish[];

    constructor(private service: Service) {}

    ngOnInit() {
        this.service.subscribe(wishes => {
            this.wishes = wishes;
        }
    }

Я получаю Содержимое коллекции «пожеланий» запрашивается, но никогда не обновляется (я запрашиваю его ниже в коде).Однако я не понимаю, почему я получаю сообщение об ошибке, так как я обновляю коллекцию каждый раз, когда получаю пожелания от своей подписки.Это как-то связано с обновлением, происходящим внутри блока подписки?Заранее спасибо.

1 Ответ

0 голосов
/ 19 сентября 2018

Удалить приват.Если вы используете private в своих глобальных переменных и у вас нет методов получения и установки, это не очень хорошая практика.

export class SomeComponent implements OnInit {
    wishes: Wish[];

    constructor(private service: Service) {}

    ngOnInit() {
        this.service.subscribe(wishes => {
            this.wishes = wishes;
        }
    }
}

Использование методов получения и установки:

    export class SomeComponent implements OnInit {
        private wishes: Wish[];

        constructor(private service: Service) {}

        ngOnInit() {
            this.service.subscribe(wishes => {
                setWishes(wishes);
            }
        }

       getWishes(): Wish[] {
         return this.wishes;
       }

       setWishes(wishes: Wish[]) {
         this.wishes = wishes;
       }
    }

в зависимости от того, на каком сервере вы работаете.его запуск потенциально может вызвать проблемы с продуктом, используя рядовые решения, поэтому я бы остановился на первых решениях.

вы можете запустить ng build --prod, чтобы протестировать код для prod

...