Как правильно использовать эффект сигнала Angular с массивами?

Я пытаюсь использовать новый эффект углового сигнала для прослушивания изменений сигнального массива объектов.

Но эффект никогда не вызывается.

Он вызывается только в том случае, если я отфильтрую один объект массива. Нажатие и обновление объекта массива не вызывает эффекта.

Вот мой код:

      // this code trigger the effect
case "DELETE":
          this.houses.update(((houses: House[]) => houses.filter((house: House) => house.id !== payload.old.id)));
          break;
// this code doesn’t trigger the effect
        case "INSERT":
          this.houses.update((houses: House[]) => {const updatedHouses = houses.push(payload.new); return updatedHouses;})
          break;
      effect(() => {
      this.filteredHouses = this.houses();
      this.onFilter();
    });

Если я сбросю значение сигнала и после этого задам новое значение, эффект будет вызван. Что я делаю не так?

1 ответ

Просто используйте оператор распространения, как показано ниже:

      this.houses.update(houses => ([...houses, payload.new]));

Статья ниже даст четкое представление о сигналах .

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