【projectItemRenamer.jsx】総合試験 47【開発記】
一通り検証しないとならない🙄
→予想していた selection の代入で onChange が発生😞
→ removeAll の作用?毎回 selection は null になるっぽい
→ null は index!=0 であり、何も選択されない状態となる
デバグ
それじゃボタン押すとなぜか呼ばれる onChange の謎に迫るぽ😑
onChange の中で this 調べて無効なら処理しないってすればすぐ治るけどそれだとボタン押されて何故か呼ばれているというのを放置してる事になるのでいくない🙄
前回の予想では updateDDL で0に戻してるとこかな?と書いたけど果たして…?🤔
ボタンの実行開始イベントにブレイク貼って onChange へ何が来てるか確認しようと思って回したんだけどなんか無限に呼ばれてる…😞
またバブリングかしら🙄
ボタンのイベント内のどこで onChange に連鎖してるのか調べるとこからかな🤔
NRH_SEND を投げるとこを実行すると onChange へ連鎖🤔
ここの前は引数確認とかの準備とかでこの後はログ吐きイベントの登録が有って処理本体が有るから履歴更新をとにかく呼んだ時に onChange が起きてる…のかな?🙄
とりあえず更に潜る…😑
NRH_SEND はイベント管理オブジェクトを通じて検索語、置換語の両方へ送られる…🤔
それをまず検索語が受け取って検索語履歴へ更新のイベントを送る…😑
そのイベントを受け取って updateDDL を掛ける🙄
で、ステップインせずにここを走らせて onChange が呼ばれれば想定通り…?🤪
ではステップオーバー👇
予想通り😑
問題はこの updateDDL のどこで onChange になってるかなのよね🙄
↑はステップオーバーだったけど今度はステップインね🤔
何となく解ってたけど、やっぱり updateDDL で selection をいじってるとこで onChange 発生😞
onChange から updateDDL が呼ばれ updateDDL で selection 代入で onChange ...(以下無限
初回は selection が null になってるのでこれを確認する式を足そうかな🤤
↑のステップ調査で分かったのは初回は selection は null になってるという事😑
なので null だったり selection と指定予定の index が合致していたらとりあえず無視の条件を追加🤔
これで少なくともボタン押した時は反応しなくなる筈🤤
あ、因みに UI 生成時に反応しないのは onChange を後で埋め込むので UI 作る時の updateDDL の時にはまだ onChange に何も入ってないから🤤
少なくともこの状態なら DDL の選択後に selection を0にすると onChange が吐かれるけどその後は selection=0==s となって処理が安定する筈🤤
でもこれも本来対応した方が良いのよね🤔
でも今の段階でも流れてくれる筈だから一旦やってみるぽ🤤
やられた…😞
確かに流れたけど null のままだと「どれも選択していない」になりよる🙄
まぁ、動作テストだけでもやっちゃおっと🤤
………
画像載せても判らないから撮らなかったけど DDL から選んで無事テキストが入れ替わるのを確認👈🤪
次回は
null のままはダメなのでそこを直すぽ🤤
この記事が気に入ったらサポートをしてみませんか?