"subscribe"已弃用,请使用观察者代替完整回调。

3

您好,我在使用SonarQube时遇到了以下错误:

'subscribe'已弃用。请使用观察者而不是完整的回调函数。我正在使用Angular 9中的Formly。

感谢您的帮助和时间。

              onInit: (field: UiFormFieldConfig) => {
                const CostsControl = FormUtil.getControl(field.form, ContactDetailsFieldKey.Costs);
                CostsControl?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((Cost: string) => {
                  if (Cost) {
                    const costsToSet = !Codes ? null : Cost;
                    field?.formControl?.setValue(costsToSet);
                  }
                });
              },
            },


请查看更新的代码,但是SonarQube仍然弹出此消息:“'subscribe'已弃用。使用观察者替代完整回调函数”。
  hooks: {
              onInit: (field: UiFormFieldConfig) => {
                const CostsControl = FormUtil.getControl(field.form, ContactDetailsFieldKey.Costs);
                CostsControl ?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe({
                  next: (Cost: string) => {
                    if (Cost) {
                      const costsToSet = !Codes ? null : Cost;
                      field?.formControl?.setValue(costsToSet);
                    }
                  },
                });
              },
            },

也许你需要加上“next”:使用已弃用的方法吗? .subscribe({ next: this.handleUpdateResponse.bind(this), error: this.handleError.bind(this) }); - Hubi
请参见:https://dev59.com/KFMI5IYBdhLWcg3wuOGO - novarx
1
这个回答解决了你的问题吗?Subscribe已被弃用:使用观察者代替错误回调 - Philipp Meissner
@PhilippMeissner 对我来说有点困惑,有任何指南将不胜感激 :) - snoopy
@snoopy 这听起来很困惑,还是提供的示例不起作用?如果是这样,请问你尝试了什么?(将代码和错误添加到您的问题中)。 - Philipp Meissner
我正在使用Angular 10,typescript 4.0.7,参考此答案 - Maple13
1个回答

0
根据@Philipp Meissner提到的答案,你应该简单地执行以下操作:
CostsControl?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(
    next: (Cost: string) => {
        if (Cost) {
            const costsToSet = !Codes ? null : Cost;
            field?.formControl?.setValue(costsToSet);
        }
    },
    error: () => { // log error }
});

1
我也做了同样的事情,但是SonarQube仍然抱怨'subscribe'已经过时。使用观察者代替完整回调。是否有其他方法解决这个问题? - snoopy
编辑您最初的问题并添加您尝试过的代码。如果您做得没错,错误就必须消失了。 - iamdlm
再次寻求您的帮助。请查看我更新的问题,新代码显示在我的初始代码下面。感谢您的时间和回复。 - snoopy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接