Ionic framework ion toggle ionChange在ionic中多次被调用

Ionic framework ion toggle ionChange在ionic中多次被调用,ionic-framework,ionic4,Ionic Framework,Ionic4,离子切换ionChange在ionic中多次被调用。我尝试过使用不同的技术来解决这个问题,但没有成功 代码1: <ion-toggle (ionChange)="changeData()" color="success" checked="{{data}}" > </ion-toggle> <ion-toggle

离子切换ionChange在ionic中多次被调用。我尝试过使用不同的技术来解决这个问题,但没有成功

代码1:

     <ion-toggle
        (ionChange)="changeData()"
        color="success"
        checked="{{data}}"
      >
     </ion-toggle>
     <ion-toggle
        (ionChange)="changeData()"
        color="success"
        [(ngModel)]="data"
      >
    </ion-toggle> 

问题:当我使用代码1时,ionChange会被多次调用,并且第一次显示的状态不正确。

代码2:

     <ion-toggle
        (ionChange)="changeData()"
        color="success"
        checked="{{data}}"
      >
     </ion-toggle>
     <ion-toggle
        (ionChange)="changeData()"
        color="success"
        [(ngModel)]="data"
      >
    </ion-toggle> 

问题:代码2导致无限循环。它无限地调用ionChange。


如果有人遇到过类似的问题和/或有人知道如何解决,请告诉我。感谢

如果您在(ionChange)=“changeData()”中更改的值,而您已经在使用[(ngModel)]=“data”时,正在更改上的boolean值,则可能会发生方法的无限循环或多次调用。因此,请删除您的代码中正在更改ionChange上数据的任何代码

当我正在使用[(ngModel)]时,在ionChange上更改布尔值时,我遇到了类似的问题

因此,删除与changeData()方法中的以下代码类似的任何代码:

// remove code which is changing state again
       
 data = !data

我用下面的方法解决了这个问题,从ngModel中删除链接或者用一些变量检查。要返回到上一个状态,我使用viewChild映射并从那里控制它

在线测试链接

你能把
changeData()
的代码包括在内吗?是的,听起来好像不是ionChange多次触发,而是“数据”的更改,而这反过来又会导致ionChange触发响应。你能分享完整的代码,包括“数据”是如何改变的吗