1

假设我定义了一个<Tag>有两个 props 的组件:idname. 我的应用程序在两个不同的地方呈现这个组件,所以我有一个<Tag>组件,它的 id1出现了两次,但它的所有者不同。一个标签归<Entries>组件所有,另一个标签归组件所有<Tags>

单击a 时<Tag>,我想更改其状态,并且我希望所有其他<Tag>具有相同状态的组件id也更改其状态以使其匹配。最好的方法是什么?都应该<Tags>有相同的根组件吗?我不喜欢这个主意,因为我觉得这是一个脆弱的解决方案。

4

2 回答 2

1

我认为你有两个选择:

1-反应方式

  • 您应该将状态保存在 和 的共同所有者组件<Tags><Entries>
  • 您应该将更改处理程序从状态所有者组件传递给<Tag>组件
  • 当标签更改时,状态所有者将同时更新<Tag>s<Tags><Entries>

  • 阅读这篇文章应该会给你很多见识: http: //facebook.github.io/react/docs/thinking-in-react.html

2-纯通量方式

  • 如果您的应用程序比您告诉的要复杂一点,您可以使用通量架构。
  • 为此,您应该在应用程序中实现操作、调度程序和存储。
  • 当 a<Tag>发生更改时,您调用一个操作,该操作又调用一个调度程序,该调度程序又被存储侦听,该存储又向组件发出更改事件。然后所有组件都使用新状态更新自己。

  • 你可以在这里找到通量:http: //facebook.github.io/flux/docs/overview.html

于 2014-10-19T05:57:36.780 回答
-3

id 通常在 html 文档中应该是唯一的。最好的解决方案是将您的 id 更改为 classes。

于 2014-10-19T04:42:31.880 回答