为什么我的MatTableDataSource推多个对象?

时间:2019-03-27 12:32:03

标签: angular typescript datasource

我的ngOnInit()中有2个订阅。

在这里,我可以向交易池中添加“交易”。单击“发送”时,它将触发transaction$订阅并将事务添加到池中。它应该总是只添加一个事务。

enter image description here

这是池的第一次外观:

enter image description here

这是console.logs给我的:这应该总是这样。在10个池中的每个池中推送事务后,它们都应包含1个对象。

enter image description here

单击一个按钮后,获奖者的人数将被订阅。优胜者的奖池应复制到其余奖池中。 现在,当我向池中添加事务时,会发生什么:

事务将被推送到10个池中的每个池。但是,每个池不会被推1次,而是被推10次。

enter image description here

这是console.logs显示的内容:

enter image description here

this.emitTransactionService.transaction$.subscribe(transaction => {
        if (transaction !== false) {
          for (let i = 1; i < 11; ++i) {
            console.log(this.transactionPools[i].dataSource.data);
            this.transactionPools[i].dataSource.data.push(transaction);
            console.log(this.transactionPools[i].dataSource.data);
          }
          console.log('Hallo');
          this.sendMessage5();
        }
      }
    );
    this.emitTransactionService.winningMiner$.subscribe(winningMiner => {
      if (winningMiner !== false) {
        for (let i = 1; i < 11; ++i) {
          this.transactionPools[i].dataSource = this.transactionPools[winningMiner].dataSource;
        }
      }
    });

我尝试了几种方法,但是没有一种起作用。我尝试在每次单击按钮后创建一个新的MatTableDataSource,但这没有用。 当我添加winningMiner$订阅时,问题也出现了

0 个答案:

没有答案