更新变异的兄弟组件?

时间:2016-10-05 21:14:27

标签: reactjs relayjs

我们假设我有以下结构:

<div>
   <Form />
   <List />
</div>

当前设置:查询位于<List />组件中,并且变异位于<Form />组件中。由于<Form />没有查询,getFatQuery无法进行比较魔术,只返回clientMutationId,这最终意味着如果没有页面刷新,列表数据就不会更新。

我怎么能让这个工作?我需要单独的表单组件,因为我想在模态中进行变异。我应该在<List /><Form />到“{1}}之间”传输“数据吗?

我有很多类似的情况,我想在单独的组件中处理数据(表单组件),这些情况的策略是什么?

1 个答案:

答案 0 :(得分:0)

您正在尝试使用React进行状态管理,正如您所注意到的那样,因为没有简单的方法在层次结构中“传递数据”,所以可能会让人感到困惑。

一个常见的解决方案是让父组件保存数据,让FormList组件对此数据作出反应,只通过从此父组件传递的回调来更改它。

另一个常见的解决方案是将Redux添加到您的应用程序以处理应用程序级状态数据。这个允许您将所有数据保存在一个名为store的对象中,使任何组件都可以轻松订阅更改,从而无需父组件进行数据传递。