ember.js ember辛烷值升级:如何处理eslint错误无操作

yruzcnhs  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(154)

这与以下方面有关:Ember Octane Upgrade How to pass values from component to controller
在../templates/change-password.hbs文件中,我收到以下eslint错误:
不要使用action作为{{action...}}。相反,使用on修饰符和fn帮助器。no-action
编码:

<Clients::ChangePasswordForm @chgpwd={{this.model}} @changePassword={{action 'changePassword'}} @errors={{this.errors}} />

已接受的答案指示我使用该语法。是否有其他方法可以处理此错误,或者是否应忽略此错误?

ccgok5k5

ccgok5k51#

在Ember Octane中,对触发器进行了更新,以鼓励使用on修饰符和fn帮助器,而不是使用action帮助器和修饰符。action修饰符用于将适当的this上下文绑定到函数。在Octane中,@action装饰器是将上下文绑定到任何方法的推荐方式。
在您的示例中,由于要将changePassword作为闭包操作传递给组件Clients::ChangePasswordForm,因此建议将函数传递给组件的方法如下:

<Clients::ChangePasswordForm 
  @chgpwd={{this.model}}
  @changePassword={{this.changePassword}}
  @errors={{this.errors}} 
/>

如果您需要将任何参数(比如this.argument)与函数沿着传递,请使用fn helper:

<Clients::ChangePasswordForm 
  @chgpwd={{this.model}}
  @changePassword={{fn this.changePassword this.argument}}
  @errors={{this.errors}} 
/>

因为您已经标记了您的操作with @action decorator。您可以开始了。
下面是official guide关于如何从经典事件处理程序升级到Octane的推荐方法
lint消息可能更有帮助,并且在ember-template-lint存储库上已经有一个issue opened,可以在使用经典的action帮助程序时公开更有用的错误消息。

相关问题