見出し画像

TWLogAIAN:フィードバックに対応、Svelteのワーニングに悩む

昨日の夜Svleteの使い方の間違いを一つ解決しました。
ようこその画面

ようこその画面のリンク

を表示すると中にあるリンクのURLをブラウザーを起動して表示してしまうという問題です。クリックしていない状態でです。逆にクリックしても
表示されません。
問題の部分は、

        使い方は
        <a
          href="##"
          on:click={openURL("https://note.com/twsnmp/m/meed0d0ddab5e")}
          >Noteのマガジン</a
        >に書いています。<br />

のようなソースコードになっています。どうやらon:clickの書き方を誤解していました。他にも同じ誤解をしていた人がいました。

です。on:clickにはクリックした時に実行する処理を書くのではなく、関数を設定する必要があります。処理を書いておくと表示した瞬間に実行されてしまいます。

を参考にして、

        <a
          href="##"
          on:click={() => {openURL("https://note.com/twsnmp/m/meed0d0ddab5e")}}
          >Noteのマガジン</a
        >に書いています。<br />

のように修正して解決しました。Svleteの初心者なので学ぶことは多いです。
問題が解決できたので快調に開発できると思い3時半に目がさめました。
今朝は、ようこその画面に続いて、フィードバック機能を作りました。

TWLogAIANのフィードバック画面

送信する処理はTWSNMP FCから簡単に移植できたので、ちゃんと動作します。
調子がでてきたので作業フォルダーの選択画面も完成させようと思ったところ、最近使ったフォルダーを選択する

最近使ったフォルダー選択

の部分の処理に

on:changeを使うな!

のようなワーニングに遭遇しました。
「on:changeではなくon:blurを使え!」ということのようです。
素直に従って修正しました。でも動きがおかしいです。

選択しても入力されない

選択してもすぐに入力されず、画面のどこかをクリックしてセレクトボックスからフォーカスが外れた瞬間に入力されます。
Googleさんに聞いてみると、この動作について議論されていることがわかりました。

いろんな人はいろんなことを言っていますが、私の場合は、
on:changeが絶対に必要です。でもワーニングは消したいと思っています。3時半から開始したのに、ここで時間切れです。

明日に続く


いいなと思ったら応援しよう!

twsnmp
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。