我如何在组件函数中获取`this.args`?我收到“ TypeError:这是未定义的”

问题描述 投票:0回答:1

我正在Ember v3.13中与{{did-insert}} ember-render-modifier一起编写一些Octane样式的组件。但是,当调用与did-insert关联的函数时,我得到了TypeError: this is undefined。我在做什么错?

这是我的组件模板:

<div class="cardhost-monaco-container" {{did-insert this.renderEditor}}></div>

这是组件的JavaScript类:

import Component from '@glimmer/component';


export default class CodeEditor extends Component {
  renderEditor(el) {
    console.log(this.args.code)
  }
}
ember.js ember-3 ember-octane
1个回答
0
投票

[每当您希望组件上的方法可以访问this上下文时,都需要使用动作装饰器将其设为一个动作:

import Component from '@glimmer/component';
import { action } from '@ember/object';

export default class CodeEditor extends Component {
  @action
  renderEditor(el) {
    console.log(this.args.code)
  }
}

动作装饰器将组件上下文绑定到方法,这使您可以使用this查找类的属性。

© www.soinside.com 2019 - 2024. All rights reserved.