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.28k stars 1.47k forks source link

[Bug Report] form.createField手动添加字段重新渲染页面 #3808

Closed robin536180 closed 1 year ago

robin536180 commented 1 year ago

Reproduction link

Edit on CodeSandbox

Steps to reproduce

需求:https://designable-antd.formilyjs.org/ designable 拖入某个组件再通过form.createField手动创建出来一个关联组件,刷新页面

What is expected?

需求:https://designable-antd.formilyjs.org/ designable 拖入某个组件再通过form.createField手动创建出来一个关联组件,刷新页面

What is actually happening?

实际是这样写无效,是不是需要再重新刷新form逻辑?

Package

@formily/core@2.0.0-rc.12


janryWang commented 1 year ago

用法不对,表单结构是无法通过 createField 去动态生产结构的,具体看看 https://formilyjs.org/zh-CN/guide/advanced/controlled

robin536180 commented 1 year ago

@janryWang 能给点意见吗,我看链接里面都是手动更新了schema的值,我实际是用在designable上,怎么在x-reaction写出这种逻辑啊

janryWang commented 1 year ago

为什么要动态修改节点树?你是要实现什么需求

robin536180 commented 1 year ago

@janryWang 表单里面的属性是动态的 选择当前控件的值作为新增控件的参数 渲染出当前值关联的其他属性 就是A组件onFieldInit的时候其实必须要手动注入进来一个跟他关联APanel的组件 这样监听A的变化作为Apanle的参数

robin536180 commented 1 year ago

为什么要动态修改节点树?你是要实现什么需求

如果真的有这样的需求,动态修改节点树,应该怎么实现呢,只能修改jsonScheme?