util.uts 450 B

12345678910111213141516171819
  1. // 查找父组件实例
  2. export function $dispatch(
  3. context : ComponentPublicInstance,
  4. componentName : string,
  5. eventName : string,
  6. ...params : any[]
  7. ) {
  8. let parent = context.$parent
  9. let name = parent?.$options?.name
  10. while (parent != null && (name == null || componentName != name)) {
  11. parent = parent.$parent
  12. if (parent != null) {
  13. name = parent.$options.name
  14. }
  15. }
  16. if (parent != null) {
  17. parent.$callMethod(eventName, ...params)
  18. }
  19. }