在突变时更新兄弟组件?
Update sibling component on mutation?
假设我有以下结构:
<div>
<Form />
<List />
</div>
当前设置:查询在 <List />
组件中,变更在 <Form />
组件中。因为 <Form />
没有查询,所以 getFatQuery
不能做它的比较魔术,它只有 returns clientMutationId
这最终意味着列表数据在没有页面刷新的情况下不会得到更新。
我怎样才能完成这项工作?我需要单独的表单组件,因为我想在模态中进行突变。我是否应该在 <List />
和 "transport" 数据中从 <Form />
到 <List />
进行突变?
我有很多类似的情况,我想在单独的组件中插入数据(表单组件),这些情况的策略是什么?
您正在尝试使用 React 进行状态管理,正如您所指出的,这可能会造成混淆,因为没有简单的方法来 "pass data around" 层次结构中的组件。
一个常见的解决方案是让父组件保存数据并让您的 Form
和 List
组件对这些数据做出反应,仅通过从该父组件向下传递的回调来更改它。
另一种常见的解决方案是将 Redux 添加到您的应用程序中以处理应用程序级别的状态数据。这允许您将所有数据保存在一个名为 store
的对象中,使任何组件都可以轻松订阅更改,因此无需父组件进行数据传递。
假设我有以下结构:
<div>
<Form />
<List />
</div>
当前设置:查询在 <List />
组件中,变更在 <Form />
组件中。因为 <Form />
没有查询,所以 getFatQuery
不能做它的比较魔术,它只有 returns clientMutationId
这最终意味着列表数据在没有页面刷新的情况下不会得到更新。
我怎样才能完成这项工作?我需要单独的表单组件,因为我想在模态中进行突变。我是否应该在 <List />
和 "transport" 数据中从 <Form />
到 <List />
进行突变?
我有很多类似的情况,我想在单独的组件中插入数据(表单组件),这些情况的策略是什么?
您正在尝试使用 React 进行状态管理,正如您所指出的,这可能会造成混淆,因为没有简单的方法来 "pass data around" 层次结构中的组件。
一个常见的解决方案是让父组件保存数据并让您的 Form
和 List
组件对这些数据做出反应,仅通过从该父组件向下传递的回调来更改它。
另一种常见的解决方案是将 Redux 添加到您的应用程序中以处理应用程序级别的状态数据。这允许您将所有数据保存在一个名为 store
的对象中,使任何组件都可以轻松订阅更改,因此无需父组件进行数据传递。