Преобразование ext.getCmp в up () или down () в ExtJS 6 ничего не возвращает - PullRequest
0 голосов
/ 18 октября 2018

Я недавно прочитал, что использование Ext.getCmp считается не очень хорошим, поэтому я обхожу свое приложение, конвертируя их в рекомендуемый метод up () или down ().

Я пришелопять маленькая проблема, хотя.В моем контроллере входа это, кажется, не работает, и я не могу понять, почему.Мой оригинальный контроллер с Ext.getCmp выглядит примерно так:

onLoginClick: function() {

    let formValues = this.getView().down('form').getValues();

    Application.login(formValues.email, formValues.password).then(function() {

        this.getView().destroy();

    }.bind(this), function(data) {
        Ext.getCmp('loginissues').setValue(data.message).show();
    });

}

, и мой взгляд немного похож на это;

items: [{
    xtype: 'displayfield',
    id: 'loginissues',
    hidden: true
}, {
    xtype: 'textfield',
    id: 'email',
    name: 'email',
    fieldLabel: 'Email',
    allowBlank: true
}, {
    name: 'password',
    inputType: 'password',
    fieldLabel: 'Password',
    allowBlank: true
}]

Так что в основном происходит то, что еслиОшибка возвращается из API, он загружает сообщение в поле отображения и затем отображает его.Все это прекрасно работает, но если я изменю идентификатор в представлении на itemId, а затем изменим вызов Ext.getCmp на что-то вроде следующего, он вообще ничего не сделает.

this.getView().down('#loginissues').setValue(data.message).show();

без ошибок или чего-либо еще.

1 Ответ

0 голосов
/ 18 октября 2018

Разбейте только эту часть кода:

this.getView().down('#loginissues')

Проверьте консоль, если вы можете успешно получить ссылку.Иначе меняйте функцию «вниз» на «вверх».

Вы также можете попробовать:

Ext.ComponentQuery.query('#loginissues')

Хотя этот метод выполняет поиск по всему DOM, но он не подвержен изменениям в макете представления.Место элемента в DOM имеет значение, Элемент, где контроль находился в точке, где вы делаете «вверх», был ниже.Так что "вверх" работает.Если он (#loginissues) был ниже контроля, тогда будет работать «down».Это (функции «вверх» и «вниз») - это оптимизированный для вычислений поиск в DOM.Поиск будет происходить только по половине части, поэтому мы будем ловить ссылку быстрее, чем запрос компонента.

...