Ember Octane 升级:如何处理 eslint 错误 no-action
Ember Octane upgrade: how to handle eslint error no-action
这与:
相关
在 ../templates/change-password.hbs 文件中,我收到以下 eslint 错误:
Do not use action
as {{action ...}}. Instead, use the on
modifier
and fn
helper. no-action
代码:
<Clients::ChangePasswordForm @chgpwd={{this.model}} @changePassword={{action 'changePassword'}} @errors={{this.errors}} />
接受的答案指示我使用该语法。我应该用不同的方式处理这个问题还是应该忽略错误?
在 Ember Octane 中,更新了 linters 以鼓励使用 on
修饰符和 fn
辅助函数而不是 action
辅助函数和修饰符。 action
修饰符用于将适当的 this
上下文绑定到函数。使用 Octane,@action
装饰器是将上下文绑定到任何方法的推荐方法。
在您的情况下,由于您将 changePassword
作为闭包操作传递给组件 Clients::ChangePasswordForm
,因此将函数传递给组件的推荐方法如下:
<Clients::ChangePasswordForm
@chgpwd={{this.model}}
@changePassword={{this.changePassword}}
@errors={{this.errors}}
/>
如果您需要将任何参数(例如 this.argument
)与函数一起传递,请使用 fn
辅助函数:
<Clients::ChangePasswordForm
@chgpwd={{this.model}}
@changePassword={{fn this.changePassword this.argument}}
@errors={{this.errors}}
/>
因为您已经标记了您的操作 。你已准备好出发。
这里是official guide关于如何从经典事件处理程序升级到 Octane 推荐的方式
lint 消息可能更有帮助,ember-template-lint
存储库上已经有一个 issue opened,可以在使用经典 action
帮助程序时公开更多有用的错误消息。
这与:
在 ../templates/change-password.hbs 文件中,我收到以下 eslint 错误:
Do not use
action
as {{action ...}}. Instead, use theon
modifier andfn
helper. no-action
代码:
<Clients::ChangePasswordForm @chgpwd={{this.model}} @changePassword={{action 'changePassword'}} @errors={{this.errors}} />
接受的答案指示我使用该语法。我应该用不同的方式处理这个问题还是应该忽略错误?
在 Ember Octane 中,更新了 linters 以鼓励使用 on
修饰符和 fn
辅助函数而不是 action
辅助函数和修饰符。 action
修饰符用于将适当的 this
上下文绑定到函数。使用 Octane,@action
装饰器是将上下文绑定到任何方法的推荐方法。
在您的情况下,由于您将 changePassword
作为闭包操作传递给组件 Clients::ChangePasswordForm
,因此将函数传递给组件的推荐方法如下:
<Clients::ChangePasswordForm
@chgpwd={{this.model}}
@changePassword={{this.changePassword}}
@errors={{this.errors}}
/>
如果您需要将任何参数(例如 this.argument
)与函数一起传递,请使用 fn
辅助函数:
<Clients::ChangePasswordForm
@chgpwd={{this.model}}
@changePassword={{fn this.changePassword this.argument}}
@errors={{this.errors}}
/>
因为您已经标记了您的操作
这里是official guide关于如何从经典事件处理程序升级到 Octane 推荐的方式
lint 消息可能更有帮助,ember-template-lint
存储库上已经有一个 issue opened,可以在使用经典 action
帮助程序时公开更多有用的错误消息。