tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:LightningのafterScriptsLoadedと要素取得について

Lightning Componentのltng:requireタグで利用できるafterScriptsLoadedと要素取得のcomponent.findについてです。


この組み合わせの処理を試していた時、Salesforce1の"pull to Refresh"による画面リフレッシュ時にエラーが発生しました。

f:id:tyoshikawa1106:20150625215447p:plain:w300


エラー原因を調査したところ、component.findの処理で対象の要素が取得できていないみたいでした。


検証用に次のコードを用意しました。


まず、画面を表示した時点でのログ内容です。
f:id:tyoshikawa1106:20150625220057p:plain


最初にdoInitの処理が実行され、次にafterScriptsLoadedの処理が実行されます。この時点ではどちらも値取得ができていました。


続いて"pull to Refresh"実行後のログ内容です。
f:id:tyoshikawa1106:20150625230632p:plain:w200

f:id:tyoshikawa1106:20150625220347p:plain


このときは先にafterScriptsLoadedが実行されて、次にdoInitが実行されていました。またafterScriptsLoadedの方ではcomponent.findによる値取得が失敗していました。


今回確認できたのはここまでになります。自分では解決方法を見つけられなかったのですが、afterScriptsLoadedの処理ではこのような現象が確認できました。