我的“ Buttonhandler”总是会导致此错误,而且我不知道如何解决

时间:2019-08-02 13:05:32

标签: ionic-framework ionic4

好的,所以我有一个离子选择器,并给了它一个完成按钮,该按钮可以读取所选值并将其保存在数组中。整个过程都没有问题,但是在编译时总是导致显示此错误:

"error TS2322: Type '() => Promise<void>' is not assignable to type 
'(value: any) => boolean | void'.
Type 'Promise<void>' is not assignable to type 'boolean | void'.
Type 'Promise<void>' is not assignable to type 'void'."

这不是一个真正的问题,因为该错误仅在我编译时出现,并且没有造成任何实际损害,但我仍然希望解决它。

我尝试了很多方法来解决此问题,但是在不破坏处理程序功能的情况下,没有任何错误可以解决。 (如下所示)

{
     text: 'Done',
     role: 'confirm',
     handler: async () => {
         const vari = await this.picker.getColumn(this.pickervalues[id].name);
         this.selectedvalue = vari.options[vari.selectedIndex].text;
         this.selected[id] = this.selectedvalue;
     }
}

有人知道如何消除此错误吗?

1 个答案:

答案 0 :(得分:1)

您可以使用 then 代替async / awiat:

{
  text: 'Done',
  role: 'confirm',
  handler: () => {
    this.picker.getColumn(this.pickervalues[id].name).then(() => {
      this.selectedvalue = vari.options[vari.selectedIndex].text;
      this.selected[id] = this.selectedvalue;
    });
  }
}

查看此Github issue  供其他参考。