条件触发事件未评估主代理变量,咨询onChange函数的使用方法
问题根因
事件窗口的默认触发校验逻辑只会监听事件自身上下文内的变量变更,你引用的主代理(main agent)变量属于父级/全局作用域,变量更新时不会主动通知事件模块重新评估触发条件,因此会出现条件不生效的问题。
onChange 函数的使用方法 1. 挂载位置
onChange 是变量的内置生命周期回调,需要绑定到你主代理中被事件引用的那个变量的定义配置里,不需要写在事件模块的代码中。
2. 调用规则与示例代码
onChange 会在绑定变量的值发生变更时自动触发,不需要手动调用。回调内需要主动触发对应事件的条件重校验,示例代码如下:
// 主代理(main agent)的变量定义块 variables: { // 你被事件引用的目标变量,示例名为orderStatus orderStatus: { default: "unpaid", // 绑定onChange回调 onChange: (newValue, oldValue) => { // 主动触发指定事件的条件重校验,传入对应事件的ID即可 $events.runConditionCheck("your_event_id"); // 如果需要触发所有事件的条件重校验,不传参数即可:$events.runConditionCheck() } } }
3. 无代码替代方案
如果不想修改主代理的变量配置,也可以直接在事件的触发设置页,将触发校验的时机改为「关联变量变更时」,再选中对应主代理变量即可,该场景不需要编写onChange代码。
内容的提问来源于stack exchange,提问作者Paolo Carrero
相关产品推荐
相关产品推荐

