我们假设我有以下结构:
<div>
<Form />
<List />
</div>
当前设置:查询位于<List />
组件中,并且变异位于<Form />
组件中。由于<Form />
没有查询,getFatQuery
无法进行比较魔术,只返回clientMutationId
,这最终意味着如果没有页面刷新,列表数据就不会更新。
我怎么能让这个工作?我需要单独的表单组件,因为我想在模态中进行变异。我应该在<List />
和<Form />
到“{1}}之间”传输“数据吗?
我有很多类似的情况,我想在单独的组件中处理数据(表单组件),这些情况的策略是什么?
答案 0 :(得分:0)
您正在尝试使用React进行状态管理,正如您所注意到的那样,因为没有简单的方法在层次结构中“传递数据”,所以可能会让人感到困惑。
一个常见的解决方案是让父组件保存数据,让Form
和List
组件对此数据作出反应,只通过从此父组件传递的回调来更改它。
另一个常见的解决方案是将Redux添加到您的应用程序以处理应用程序级状态数据。这个允许您将所有数据保存在一个名为store
的对象中,使任何组件都可以轻松订阅更改,从而无需父组件进行数据传递。