假设我定义了 <Tag>
有两个 props 的组件:id
和name
。我的应用程序在两个不同的位置呈现此组件,因此我有一个 <Tag>
id 为 1
的组件出现两次,但主人不同。一个标签由<Entries>
拥有。组件,另一个由<Tags>
拥有成分。
当 <Tag>
单击后,我想更改其状态,并且我想要所有其他 <Tag>
具有相同的组件 id
还可以更改它们的状态以使它们匹配。最好的方法是什么?应该都是<Tags>
有相同的根组件吗?我不喜欢这个想法,因为我觉得这是一个脆弱的解决方案。
最佳答案
我认为你有两个选择:
1- react 方式
- 您应该将状态保留在
<Tags>
的公共(public)所有者组件中和<Entries>
。 - 您应该将更改处理程序从状态所有者组件传递到
<Tag>
组件 当标签更改时,状态所有者将更新
<Tag>
两者皆有<Tags>
和<Entries>
阅读本文应该会给您带来很多见解: http://facebook.github.io/react/docs/thinking-in-react.html
2-纯助焊剂方式
- 如果您的应用比您所说的稍微复杂一点,您可以使用 Flux 架构。
- 为此,您应该在应用程序中实现操作、调度程序和存储。
当
<Tag>
发生更改时,您调用一个操作,该操作又调用一个调度程序,该调度程序又被存储监听,存储又向组件发出更改事件。然后所有组件都会使用新状态自行更新。您可以在这里找到有关通量的信息: http://facebook.github.io/flux/docs/overview.html
关于javascript - 如何更新代表相同数据的两个不同的 React 组件实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26447368/