Replies: 3 comments 6 replies
-
schema不是observable的,所以引用修改是不会生效的,本身也不推荐引用修改schema,dn的思路是专门维护一颗独立的observable tree node结构, |
Beta Was this translation helpful? Give feedback.
5 replies
-
@janryWang |
Beta Was this translation helpful? Give feedback.
1 reply
-
@eeeyeee 目前你有更好的方案了么?我也是将 json schema传递个 Schema class 然后调度 toFieldProps 发现 Field 组件并不会正确的响应 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Schema 是 Formily 最核心的东西,@formily/json-schema 包提供了 Schema 类,用于解析 JSON Schema,也可以将 Schema 转为 Field。Schema 是一棵树,各节点组件内可以通过 useFieldSchema 获取 schema,可以通过 useField 获取 field。
我发现 schema 和 field 并不是同步的,比如:
上面例子
因为 schema 不支持局部更新,全局更新,需要另辟蹊径,比如:
上面例子通过更新 useState 来重新渲染组件,这样新增的节点就插入进来了。
最近在自己折腾表单设计器,designable 的思路一时半会儿也没有看明白。我自己的理解,Formily 有一套 JSON Schema 用于支撑表单内各组件的动态渲染,这样的话,已有节点的 schema,更新 field 可以达到效果;新增和删除 property,需要全局自己 new 一个全局的 schema 来处理。比如上面例子的做法:
不知道是不是自己折腾的思路不对,有没有什么好的思路建议呢?
最后,附上上面例子的完整代码
https://codesandbox.io/s/sad-golick-o1rxy
Beta Was this translation helpful? Give feedback.
All reactions