fix: disappearing of sub-form data (#2888)

This commit is contained in:
被雨水过滤的空气-Rain 2023-10-21 11:31:38 +08:00 committed by GitHub
parent dc4754750d
commit 75f97e7e0c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -56,6 +56,15 @@ const useLazyLoadAssociationFieldOfForm = () => {
variables variables
.parseVariable(variableString, recordVariable) .parseVariable(variableString, recordVariable)
.then((value) => { .then((value) => {
// fix https://nocobase.height.app/T-2288
// 造成这个问题的原因有以下几点:
// 1. 编辑表单自身会请求数据,并在请求数据时,会在 appends 参数中加上所有的关系字段路径(包括子表单中的);
// 2. 而 `变量预加载中` 也会请求对应关系字段的数据,但是请求的数据是不包含子表单中的关系字段的;
// 3. 所以,当 `变量预加载` 的请求晚于编辑表单的请求时,就会造成这个问题;
// 更优的解决方案是:在 `变量预加载` 中也加上子表单中的关系字段路径,并删除编辑表单请求数据的逻辑(因为没必要了)。
// 但是这样改动较大,可以等之后 e2e 测试较完备后再处理。
if (field.value) return;
field.value = transformVariableValue(value, { targetCollectionField: collectionField }); field.value = transformVariableValue(value, { targetCollectionField: collectionField });
}) })
.catch((err) => { .catch((err) => {