Open TYBWANG opened 1 year ago
自定义组件,并且可以通过编辑器编辑导出 JSON Schema
官方提供的方案 "type": "custom" 和 JS SDK的方式都不是我想要的方案。作为开发者肯定是希望使用 JSON Schema 配置页面,同样使用 JSON Schema 配置组件并且通过 type: "my-custom" 来使用
1、使用可视化编辑器自定义一个组件导出JSON Schema,保存到 my-custom.json 2、引入React,使用class方式将my-custom.json当模版定义为React组件MyCustom 3、使用amis注册MyCustom为组件
import myCustomTpl from '/src/components/my-custom.json'
const React = amisRequire('react') const amisLib = amisRequire('amis')
class MyCustom extends React.Component { render() { return this.props.render('my-custom', myCustomTpl) } }
amisLib.Renderer({ type: 'my-custom', autoVar: true })(MyCustom)
最后不清楚的可以看这里 : https://github.com/TYBWANG/tyb-amis-admin 感觉有帮助的可以点个star
能教教我怎么搞么?没看明白
实现场景:
自定义组件,并且可以通过编辑器编辑导出 JSON Schema
存在的问题:
官方提供的方案 "type": "custom" 和 JS SDK的方式都不是我想要的方案。作为开发者肯定是希望使用 JSON Schema 配置页面,同样使用 JSON Schema 配置组件并且通过 type: "my-custom" 来使用
我的方案:
1、使用可视化编辑器自定义一个组件导出JSON Schema,保存到 my-custom.json 2、引入React,使用class方式将my-custom.json当模版定义为React组件MyCustom 3、使用amis注册MyCustom为组件
import myCustomTpl from '/src/components/my-custom.json'
const React = amisRequire('react') const amisLib = amisRequire('amis')
class MyCustom extends React.Component { render() { return this.props.render('my-custom', myCustomTpl) } }
amisLib.Renderer({ type: 'my-custom', autoVar: true })(MyCustom)
4、使用自定义组件
{ ... "type": "my-custom", "data": "" } 使用很方便且灵活。整个项目只需在请求响应拦截器里写js代码,其他都是 JSON Schema文件
最后不清楚的可以看这里 : https://github.com/TYBWANG/tyb-amis-admin 感觉有帮助的可以点个star