慣れてくるとあまり見かけなくなりましたが、コンポーネントの継承とかやり始めたころはよくお目にかかったエラーです。
[Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER)
[nsIDOMHTMLDivElement.appendChild]” nsresult: “0×80004003 (NS_ERROR_INVALID_POINTER)”
location: “JS frame :: http://hogehoge/lib/ext/ext-all-debug.js :: anonymous :: line 15886″
data: no][Break on this error] pnode.appendChild(this[name].dom);
動作の詳細までは追っかけていないので感覚的なところはありますが、このエラーが出たときは、大概initComponentに書くべき設定がなく、レンダリングがうまくいかないってパターンでした。
例えば、items。
これは、必ずinitComponent内に記述しておかないといけない。
要は、initComponentを実行する際に、itemsが存在することがポイントなので、initComponent内に定義してもいいし、それ以前に作成できるようであればOK。
コンポーネントの拡張方法によっては、Ext.extendだけでなく、クラス名=fucntion()って監事にコンストラクタ作っている場合もある。この場合は、コンストラクタにitemsがあればinitComponentの前にitemsが存在するので問題はなかった。
金曜日, 30. 9 月 2011
貴エントリで今抱えている問題が解決しました。仕組みについても少し深追いしてみようと思います。ありがとうございました。