github および google グループでこの質問をしました。結果が出ませんでした。質問は次のとおりです。
再利用可能なコンポーネントをいくつか作成したいとします。
(defn song-player []
"display songs and controls"
(let [current-song (atom {"title" "some title", "url" "some-url"})]
(fn []
[:div.player
[:p "title: " (@current-song "title")]
[:audio#player-audio
{:src (str (@current-song "url"))}]
[:input {:type "button"
:value "Play/Stop"
:on-click #(let [player (. js/document (getElementById "player-audio"))]
(if (.-paused player)
(.play player)
(.pause player)))}]])))
1 つのページに複数のソング プレーヤーが必要だとします。その場合、ページの ID が重複するため、ID(#player-audio) を audio 要素に割り当てることができません。
では、イベント ハンドラーでローカル コンポーネントを参照するにはどうすればよいでしょうか。この場合、on-click イベントのイベント ハンドラーでローカル オーディオ要素を参照するにはどうすればよいですか?
react.js では、オーディオ コンポーネントに ref を割り当て、this.refs.XXX で参照できます。試薬でこれを行うにはどうすればよいですか? ありがとう!