私はいくつかのコードを持っていて、以前はうまく機能していましたが、今はもう機能しません。GridPanel に表示される一連の結果があり、結果をフィルター処理するためのテキスト フィールドがあります。3 文字以上入力すると、それに応じて表示結果がフィルタリングされます。テキストフィールドには、入力された値に反応するリスナーがあります。何かが入力されると、次のコマンドが起動されます。
grid = Ext.getCmp('shopGrid');
console.log(grid);
store = grid.getStore();
console.log(store);
if (strLen >= 3) {
store.filter('NAME', input, true, false);
} else {
store.clearFilter();
store.load();
}
何が起こっているのかを確認するために console.log() を追加しました。グリッドをコンソールに表示すると、それはあらゆる種類の要素を持つオブジェクトであり、期待通りです。ただし、それ以上は進まず、「TypeError: Ext.getCmp(...).getStore は関数ではありません」というエラー メッセージで終了します。
以前にこの種のエラー メッセージに遭遇したことがありますが、Javascript の内部動作についての私の理解はかなり限られているため、まだ何を伝えようとしているのかを完全には理解していません。ExtJS 内では、関数 getStore() は GridPanels に対してのみ定義されています。私の問題は、getCmp() が GridPanel ではなく標準オブジェクトを提供することでしょうか? しかし、Javascript 内のオブジェクトのタイプは 1 つだけですよね? とにかく、Ext バージョン 3.4.1 を使用しています。ヘルプやヒントをいただければ幸いです。