次の Svelte コードがあります:
Player.svelte:
リーリーPlayerControls.svelte:
リーリー再生アイコンを押すと、アイコンは変化しませんが、音聲が開始されます。もう一度クリックすると、音聲は停止しますが、アイコンは変化しません。 audio.paused はスクリプト內(nèi)でのみ「変更」し、HTML 內(nèi)では変更しないようです。ここで何が問題になっているのでしょうか?また、Svelte について理解できない點(diǎn)は何ですか?
與えられたケースにおいて、最も堅(jiān)牢な解決策は、特定の <audio>
要素 Events を利用して、svelte に參照のステータスを再確認(rèn)するよう警告することです。これにより、svelte がリスナーのライフサイクルを管理できるようになり、再生狀態(tài)がいつどのように変化するかというすべてのエッジケースを要素自體で処理できるようになります。
私のコメント內(nèi)のドキュメントリンクは、あなたの問題 反応性/配列とオブジェクトの更新 に対する簡単な解決策をカバーしています。これは、単に audio
を onClick# として再割り當(dāng)てすることです ##ハンドラーの最後のステップ。
paused の変更は追跡されないことに注意してください。
リーリー
リーリー
ただし、
audio
ref であり、
paused が読み取り専用プロパティであるという事実は無視されます。