Procode 物料如何调用数据源方法
解决方案
给物料插入如下配置,可以默认给物料提供 reloadDataSource 的参数。
{
title: {
label: {
type: 'i18n',
'en-US': 'reloadDataSource',
'zh-CN': 'reloadDataSource',
},
},
name: 'reloadDataSource',
setter: 'StringSetter',
initialValue: () => (
{
"type": "JSFunction",
"value": "function(){ return this.reloadDataSource; }"
}
),
},
在物料组件中,即可掉用如下代码来获取到相关方法。
const reloadDataSource = props.getReloadDataSource()
FAQ
希望该配置在配置面板中不展示
在配置中加上
condition: () => false,
完整示例
{
title: {
label: {
type: 'i18n',
'en-US': 'reloadDataSource',
'zh-CN': 'reloadDataSource',
},
},
name: 'reloadDataSource',
setter: 'StringSetter',
condition: () => false,
initialValue: () => (
{
"type": "JSFunction",
"value": "function(){ return this.reloadDataSource; }"
}
),
},
配置没有生效
查看组件中的 schema,对应的配置是否已经正确设置。
没有正确设置上可能的原因是 1.snippets 中没有默认值 需要按照如下的代码中,加上默认的参数配置
const snippets: Snippet[] = [
{
title: 'Field',
screenshot: '',
schema: {
componentName: 'ProField',
props: {
type: 'textarea',
value: '我是测试',
getReloadDataSource: {
"type": "JSFunction",
"value": "function(){ return this.reloadDataSource; }"
}
},
},
},
];
如何全局生效
通过 registerMetadataTransducer API 来修改元数据信息,注意如果有 snippets 相关配置也需要修改相关的配置。