页面事件监听

监听可以做的事情

  • 监听所有字段值变化,对应监听类型为:valueChange
  • 监听所有事件执行前,执行后。对于监听类型为:beforeEvent、afterEvent

谁可以监听

  • 自定义组件可以监听
  • 自定义事件可以监听
  • 引用模板,可以通过ref.getContext来获取上下文,从上下文获取监听

如何监听

监听事件存在上下文,所以只要获取上下文既可以注册监听事件

  • 自定义组件从入参可以获取上下文: props.configs.context
  • 自定义事件从入参可以获取上下文: props.context
  • 引用模板
    • 引用cir-form-generator组件: ref.getContext()
    • 应用LCPDetailTemplate组件:ref.current?.RenderRef?.current?.getContext()

注册监听

获取到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