页面事件监听
监听可以做的事情
- 监听所有字段值变化,对应监听类型为:valueChange
- 监听所有事件执行前,执行后。对于监听类型为:beforeEvent、afterEvent
谁可以监听
- 自定义组件可以监听
- 自定义事件可以监听
- 引用模板,可以通过ref.getContext来获取上下文,从上下文获取监听
如何监听
监听事件存在上下文,所以只要获取上下文既可以注册监听事件
- 自定义组件从入参可以获取上下文:
props.configs.context
- 自定义事件从入参可以获取上下文:
props.context
- 引用模板
- 引用cir-form-generator组件:
ref.getContext()
- 应用LCPDetailTemplate组件:
ref.current?.RenderRef?.current?.getContext()
- 引用cir-form-generator组件:
注册监听
获取到context后,可以通过context.addListener注册监听。入参是一个对象,key有
名称 | 类型 | 说明 |
---|---|---|
code | string |
用于注册唯一值 |
type | 'valueChange' | 'beforeEvent' | 'afterEvent' |
用于注册唯一值 |
handler | Function |
触发监听回调事件 |
handler入参说明
名称 | 类型 | 说明 |
---|---|---|
data | { value: any; configs: Record<string, any>; extra?: Record<string, any>; } |
value是当前值,configs是对应触发的的配置,比如属性配置或者按钮配置,extra是附带的额外内容,比如是明细行中第几行触发 |
注意事项
监听会触发所有事件回调,记得过滤自己需要的处理的内容,比如只需要监听A的值改变,B发生改变也会触发valueChange,可以从configs中获取配置,从而过滤A的配置做处理
作者:袁子涵 创建时间:2023-05-29 11:18
最后编辑:袁子涵 更新时间:2024-12-11 10:09
最后编辑:袁子涵 更新时间:2024-12-11 10:09