我在 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)))}]])))
假设我想在一页中有几个歌曲播放器。在这种情况下,我无法将 ID(#player-audio) 分配给音频元素,因为该页面将具有重复的 ID。
那么如何在事件处理程序中引用本地组件呢?在这种情况下,如何在 on-click 事件的事件处理程序中引用本地音频元素?
在 react.js 中,我可以为音频组件分配一个引用,并通过 this.refs.XXX 引用。我如何在试剂中做到这一点?谢谢!