说我已经定义了一个包含两个道具的<Tag>
组件:id
和name
。我的应用程序在两个不同的位置呈现此组件,因此我有一个<Tag>
组件,其ID为1
出现两次,但其所有者不同。一个标记由<Entries>
组件拥有,另一个标记由<Tags>
组件拥有。
点击<Tag>
后,我想更改其状态,并且我希望所有其他具有相同<Tag>
的{{1}}组件也更改其状态,以便它们匹配。最好的方法是什么?是否所有id
都具有相同的根组件?我不喜欢这个想法,因为我觉得这是一个脆弱的解决方案。
答案 0 :(得分:1)
我认为你有两个选择:
1-反应方式
<Tags>
和<Entries>
的公共所有者组件中。 <Tag>
组件当代码更改后,州名所有者将更新<Tag>
和<Tags>
<Entries>
阅读本文应该会给你很多见解: http://facebook.github.io/react/docs/thinking-in-react.html
2- Pure Flux方式
当更改<Tag>
时,您会调用一个操作,该操作又调用一个调度程序,然后调度程序将由商店进行侦听,而调度程序又会向组件发出更改事件。然后所有组件都以新状态更新自己。
你可以在这里找到关于助焊剂的信息: http://facebook.github.io/flux/docs/overview.html
答案 1 :(得分:-3)
id在html文档中通常应该是唯一的。 最好的解决方案是将您的身份证改为班级。