根据json生成动态表单,怎么做呢?
有没有大佬提供个例子,有input输入框 有checkbox按钮就行?
首先纠正一下楼主,checkbox是复选框,楼主说的这个是switch:开关
以jsx语法来进行解释:
function App() {
const shema = [
{
type: 'input',
props: {
maxlength: 12,
},
},
{
type: 'switch',
},
]
return <CustomForm shema={shema}/>
}
function CustomForm({ shema }) {
return (
<>
{shema.map(function (item,idx) {
switch (item.type) {
case 'input':
return <input key={idx} {...item.props} />
case 'switch':
return <switch key={idx}/>
default:
}
})}
</>
)
}
上面只是生成了表单项,如果需要更全面的话可以加上FormItem,并且给schema每一项加上title属性来展示FormItem的标题
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.2k 阅读✓ 已解决
5 回答2.2k 阅读
3 回答1.9k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
v-for 实现
比如
内部判断 type 写逻辑即可。