Dojo2:如何获取子小部件实例以在其上调用函数

时间:2018-07-27 04:50:32

标签: dojo access children

设置非常简单,假设这段代码:

 export default class App extends WidgetBase {

     protected render() {
         return v('div', [
             w(MyCustomWidget, {}), 
             v('button', {
                 id: 'abc',
                 classes: ['btn', 'btn-primary'],
                 onclick: this.clickMe
             }, [
                 'Hello World!'
             ])
         ]);
     }

 }

MyCustomWidget现在定义了一个我想从当前App小部件中调用的函数。如果执行let cw = w(MyCustomWidget, {}),我将得到一个键为instance的对象,其中包含我想要的内容。但是,如果我使用cw.instace,TypeScript会告诉我Property instance does not exist on type 'WNode<MyCustomWidget>'

那怎么做呢?

1 个答案:

答案 0 :(得分:0)

我联系了Dojo2的家伙,他们很快回应了我:

  

如果您希望子控件从父级调用函数,则需要将其作为属性传递给子级。在dojo中,小部件实例从不公开。

这也是我的解决方法,但是我不确定这是否是正确的方法。当然可以。现在我们知道了。