84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
次の Svelte コードがあります:
Player.svelte:
PlayerControls.svelte:
再生アイコンを押すと、アイコンは変化しませんが、音声が開始されます。もう一度クリックすると、音声は停止しますが、アイコンは変化しません。 audio.paused はスクリプト内でのみ「変更」し、HTML 内では変更しないようです。ここで何が問題になっているのでしょうか?また、Svelte について理解できない点は何ですか?
与えられたケースにおいて、最も堅牢な解決策は、特定の <audio> 要素 Events を利用して、svelte に参照のステータスを再確認するよう警告することです。これにより、svelte がリスナーのライフサイクルを管理できるようになり、再生状態がいつどのように変化するかというすべてのエッジケースを要素自体で処理できるようになります。
<audio>
REPL
私のコメント内のドキュメントリンクは、あなたの問題 反応性/配列とオブジェクトの更新 に対する簡単な解決策をカバーしています。これは、単に audio を onClick# として再割り当てすることです ##ハンドラーの最後のステップ。
audio
onClick# として再割り当てすることです ##ハンドラーの最後のステップ。
paused の変更は追跡されないことに注意してください。 リーリー
の変更は追跡されないことに注意してください。
REPL ###編集###
リーリー ただし、audio
ただし、
ref であり、paused が読み取り専用プロパティであるという事実は無視されます。
であり、
が読み取り専用プロパティであるという事実は無視されます。
与えられたケースにおいて、最も堅牢な解決策は、特定の
リーリー<audio>
要素 Events を利用して、svelte に参照のステータスを再確認するよう警告することです。これにより、svelte がリスナーのライフサイクルを管理できるようになり、再生状態がいつどのように変化するかというすべてのエッジケースを要素自体で処理できるようになります。REPL
元の回答
私のコメント内のドキュメントリンクは、あなたの問題 反応性/配列とオブジェクトの更新 に対する簡単な解決策をカバーしています。これは、単に
音声が自然に終了した場合、audio
をonClick# として再割り当てすることです ##ハンドラーの最後のステップ。
paused
の変更は追跡されないことに注意してください。
リーリーREPL ###編集###
私は最初、paused
属性を直接変更することを提案しました:リーリー
がただし、
audioref
であり、
pausedが読み取り専用プロパティであるという事実は無視されます。