2 つの異なる RiotControl ストアを使用して、2 つの類似した Riot コンポーネントでイベントをスコープする最良の方法は何ですか?
現在、コントロール ストアはグローバルであるため、どのボタンが押されても、アクションは両方のタグに適用されます。店舗ごとに 1 つのタグを適用する最善の方法を見つけようとしています。
私の実際のユースケースには複数のネストされたタグがあるため、Store を渡すのは理想的ではないかもしれません。
https://jsfiddle.net/Lsc3znng/に例を設定しました 。
私のタグ:
<script type="riot/tag">
<play>
<button onclick={ toggle }>{opts.name}</button>
<p name="status">unclicked</p>
var self = this
RiotControl.on('play', function() {
self.status.innerText = "clicked"
})
toggle(e) {
RiotControl.trigger('play_toggle')
}
</play>
</script>
私の店:
function ButtonControlStore() {
riot.observable(this)
var self = this
self.on('play_toggle', function() {
self.trigger('play')
})
}
var controlStoreOne = new ButtonControlStore()
var controlStoreTwo = new ButtonControlStore()
RiotControl.addStore(controlStoreOne)
RiotControl.addStore(controlStoreTwo)