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.43k stars 1.49k forks source link

希望在editable分别在true和false时展示不同的组件 #864

Closed ppmmwozuiai closed 4 years ago

ppmmwozuiai commented 4 years ago

Is your feature request related to a problem? Please describe. 在实际应用fomily的过程中发现两个实际问题: 1>自定义Field组件在editable=false时没有任何变化 2>有时需要在编辑页和详情页渲染不同的组件 例如:在表单页(也就是editable=true时)中某Field组件为数字输入框,输入内容为0-1之间的小数; 但是在详情页面中(即editable=false时)组件展示为进度条

Describe the solution you'd like 想到三种可行的解决方法: 1)注册组件时,结队传入可编辑和不可编辑两个组件组成的数组,在渲染表单时根据editable状态选择使用对应的组件; 2)针对自定义Field组件(比如叫MyComp),同时定义一个MyComp.Disabled组件,editable=false时调用MyComp.Disabled组件; 3)调查组件中是否有disabled属性,如果有则在调用组件时设置disabled=editable,而组件的表现形式则在组件内部封装;

zhaowei-plus commented 4 years ago

formily自定义组件时会对应的属性(实例注册的属性是editable,全局注册的是disabled),当editable=true时,对应的值被设置成true,自己根据不同的值分别实现自己想要的组件就好了。这个0.x版本都支持了,1.x的版本有修改罢了