我正在学习Extjs并遇到问题,当我尝试将新文本追加到项目时,出现错误tf.setValue不是一个功能,getValue也是如此。当我尝试setVisible时,它应该工作。

Ext.Loader.setConfig({enabled:true});

Ext.application({
    name: 'app',
    controllers:[
  ],
    appFolder: 'app',
    launch: function() {
        var panel = new Ext.form.FormPanel({
          renderTo:Ext.getBody(),
          title:'Panel',
          width:400,
          bodyPadding: 10,
          autoHeight:true,
          items:[{
            xtype:'textareafield',
            name: 'textInput',
            id:'textId',
            value:'why not'
          },{
            xtype:'button',
            text:'Helllo',
            handler:function(){
              console.log('button click')
              var tf = Ext.get('textId');
                    tf.setValue('This should change!')
            }
          }],
        });
    }
});


谢谢

最佳答案

这是因为Ext.get()将返回Ext.Element

您要使用的是Ext.getCmp('textId'),它将返回组件。

Element基本上是Dom元素周围的Ext包装器,因此它具有setVisible之类的方法,但是您要获取文本区域组件,该组件具有您要使用的所有方法。

10-06 00:29