如何在中继现代实验性中共享相同的表单来创建和更新对象?

问题描述

我是中继的新手,我正在尝试在并发模式下使用中继现代实验。我已经能够使用Suspense和ErrorBoundary加载节点,边缘等。我现在正在处理用于创建和更新对象的表单。

我无法弄清楚如何在创建和编辑案例中使用相同的表单,因为我无法在创建案例中加载片段-表单字段的初始值设置为默认值。在创建案例中,我什么都没有传递给useFragment。

如何创建符合表单所需的片段定义的初始值?也许有一种我不知道的模式。我肯定错过了什么。我不想复制表单UI组件。

解决方法

我认为使用Relay存储在React中驱动表单是没有意义的,因为它确实很复杂:例如,在create情况下,您需要将表单中的数据写入一些临时ID,您用于标识存储中的节点,然后告诉片段容器读取该节点上的字段。然后,在创建或编辑的情况下,在表单输入更改事件处理程序中,都将使用commitLocalUpdate() API更新该节点。这真的很复杂。

一种更简单的表单编辑模式,无论是创建新节点还是编辑现有节点,都是在React组件(useState())中以状态驱动表单,然后持久保存(create或完成编辑后,请使用中继。在编辑现有节点的情况下,最终会从中继存储中出现“派生”状态,使用表单对其进行修改,然后将其持久化。然后,当变异完成时,您可以通过updater函数或通过变异回复中的字段来更新商店。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...