2016-10-05 23 views
0

让我们假设我有以下结构:更新突变的同胞组件?

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

当前设置:查询是<List />成分和变异是<Form />组件。因为<Form />没有查询,所以getFatQuery不能做它的比较魔术,它只返回clientMutationId,这最终意味着列表数据不会在没有页面刷新的情况下更新。

我该如何做这项工作?我需要单独的表单组件,因为我想在模态中进行突变。我是否应该在<List />中进行突变,并将<Form />的“transport”数据转换为<List />

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

回答

0

您正在尝试使用React进行状态管理,因为您没有简单的方法在层次结构中“传递数据”组件,所以可能会引起混淆。

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

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

+0

为了获得自动的UI更新,查询和变异*必须在同一个组件上? – Solo

+0

如果这是一个问题,那么答案是否 – ZekeDroid

+0

你能否更新答案并用几句话展开?如果Relay组件/查询位于不同的组件上,则Relay.js不会使用新数据(突变有效载荷)更新我的商店(和UI)。 – Solo