alibaba / formily

📱🚀 🧩 Cross Device & High Performance Normal Form/Dynamic(JSON Schema) Form/Form Builder -- Support React/React Native/Vue 2/Vue 3
https://formilyjs.org/
MIT License
11.12k stars 1.44k forks source link

[Bug Report] 当表单设置初始值且数组字段有父字段时,依赖联动会导致数组字段里的值丢失,但是不设置初始值时表现却是正常的 #4014

Closed faner11 closed 8 months ago

faner11 commented 9 months ago

Reproduction link

Edit on CodeSandbox

Steps to reproduce

CodeSandbox有复现代码,点击 添加条目 按钮即可复现 没有设置初始值,一切正常 设置初始值,出现值丢失的情况,值丢失后重新选择设置新值,点添加条目,一切正常 这是我的初始值,但是当没有father 这一层的时候,一切都是正常

{
    father: {
      array: [
        {
          select: 1,
          input: "123"
        },
        {
          select: 2,
          input: "789"
        }
      ]
    }
  }

What is expected?

表现和无初始值一样

What is actually happening?

数组里的字段值丢失

Package

@formily/core@2.3.0


janryWang commented 8 months ago

没看懂描述的啥问题?具体怎么复现的

janryWang commented 8 months ago

看懂了,依赖联动在首次渲染的时候就是会被执行的,你设置的空字符串是会生效,生效的效果就是会覆盖值,一般处理清空这种问题,都是走主动联动方案