导出校验改用落盘后的权威表单
- packageAll 的本地校验改用 effectiveFormRef.current ?? form,避免 refresh/flush 后仍用陈旧闭包放行盘上的非法值
This commit is contained in:
+5
-2
@@ -827,8 +827,11 @@ export function useTaonierExport({
|
||||
// 没解决的冲突 / 字段红字:盘上的内容和用户看到的不一致,先别打包。
|
||||
if (conflict || fieldErrors.length > 0) return false;
|
||||
// 盘上的表单要能过本地校验:校验不过时留在表单上,不跑构建(对齐「校验不过不触宿主」)。
|
||||
if (form && validateTaonierForm(form).length > 0) {
|
||||
setFieldErrors(validateTaonierForm(form));
|
||||
// `form` 是 render 闭包快照,前面的 `refresh()`/flush 可能已把更权威的落盘表单写进
|
||||
// `effectiveFormRef`;这里必须校验真正落定的那份,否则会放行盘上的非法值。
|
||||
const effectiveForm = effectiveFormRef.current ?? form;
|
||||
if (effectiveForm && validateTaonierForm(effectiveForm).length > 0) {
|
||||
setFieldErrors(validateTaonierForm(effectiveForm));
|
||||
setDirty(false);
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user