javascript - 如何更新代表相同数据的两个不同的 React 组件实例?

标签 javascript reactjs reactjs-flux

假设我定义了 <Tag>有两个 props 的组件:idname 。我的应用程序在两个不同的位置呈现此组件,因此我有一个 <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/

相关文章:

javascript - 将表达式连接到 html 标签的中间

Reactjs Onclick事件,向父级发送值

reactjs - 使用节点获取来计算下载百分比的正确方法

javascript - React 组件的状态在 render 中的值与 setState 中的值不同

javascript - 输入 Reactjs 的预期相应 JSX 结束标记

javascript - 在 Flux/React 中设置页面标题是谁的工作?

javascript - 如何等待在 react.js 中呈现 View 直到 $.get() 完成?

javascript - 从控制台中的元素中提取数据属性

javascript - 动态添加表数据和表行到 HTML,TD 不显示在 HTML 中

javascript - 即使 ajax 验证返回 false,onsubmit 仍然提交表单