4.5 KiB
数据源
前言
设计器提供数据源来配合画布上的组件/区块渲染,数据源的配置既可以采取在设计器中静态配置的方式,也可以采取远程 API 请求 JSON 数据动态获取的方式。
目前数据源可便捷地应用于表格组件的表格列,也可灵活地应用于手动调用指定的远程 API。
创建数据源
创建数据源步骤:
表格组件中的应用
数据源主要载体为Collection组件,因此在使用数据源之前需要先在画布中拖放入Collection组件,然后在属性面板中选择需要绑定的数据源
然后需要在Collection组件中放入Grid表格组件,根据提示引入配置数据,就会自动解析出表格列数据
手动调用指定的远程 API
低代码引擎,将所有数据源都挂载到了 dataSourceMap
中,并为每个数据源都提供了 load
方法,用于手动调用场景,比如:点击保存按钮时,需要调用后端的保存接口,提交用户填写的数据,此时可以通过数据源来提交。
使用说明
this.dataSourceMap.xxx.load()
- xxx 为在数据源面板设置的数据源名称
- 支持传入请求参数,可用于覆盖在数据源面板中配置的请求参数(默认请求参数)
- load 方法返回一个 Promise
示例
以会议预订页面为例,为 创建
按钮绑定点击事件(onClick
)
绑定点击事件处理器为 createMeeting
,补充其实现,主要为 this.dataSourceMap.createMeeting.load(this.state.meeting)
。
表示将用户填写的会议信息(this.state.meeting
),调用数据源 addMeeting
(POST 请求),提交给后端。
完整代码示例如下:
async function createMeeting() {
try {
const res = await this.dataSourceMap.addMeeting.load(this.state.meeting)
console.log('成功创建以下会议:', res)
} catch {
this.utils.toast({
type: 'error',
title: '创建会议请求失败,请稍候重试或联系客服'
})
}
}
数据源获取远程字段
在使用数据源之前,我们需要向数据源中添加属性字段,可以通过“新建字段”按钮逐个添加。
但某些场景下,有更高效的添加方式,比如:基于已有的 HTTP 接口响应数据,快速地创建数据源的字段。
操作步骤
如果接口请求存在跨域、鉴权等情况,无法通过“发送请求”自动填充响应数据时,可以手动将响应数据(比如:JSON 格式数据),粘贴至下方的“请求结果”编辑器中。
请求完成回调函数示例
- 解析对象数组
function dataHandler(data) {
return data.map(v => ({
name: v.nickName,
status: v.status
})
)
}
数据源Mock数据
目前数据源在编辑态时只能使用Mock数据,所以我们可能需要给数据源添加Mock数据
操作步骤
使用数据源Mock数据
更新数据源到画布
添加完Mock数据后,画布上绑定的数据源不会同步改变,需要手动更新,操作如下:
选中画布中的数据源,打开属性面板,点击更新数据源