我有一个基础组件与画布在它.我可以在这个基类的ngOnInit方法中用纯色填充画布.

我有一个子组件,它继承了基础的模板.我try 从子对象的ngAfterViewInit方法调用基类的canvas fill方法,但它说canvas元素为null.

我已经发布了alert 信息,它们正在按我预期的顺序出现.第一个在基类的ngOnInit方法中,第二个在基类的填充Canvas方法中,我从子对象的ngAfterViewInit方法调用该方法.

我在StackBlitz中有代码:

Code Example

谁能帮我指出我做错了什么\需要做什么,以便能够从子元素那里填充画布?

推荐答案

我认为这里不需要继承,只需调用该元素的viewChild中的函数即可,如下例所示!

children

import { ViewChild } from '@angular/core';
import { Component, AfterViewInit } from '@angular/core';
import { BaseComponent } from '../base/base.component';

@Component({
  selector: 'app- children ',
  templateUrl: './ children .component.html',
})
export class ChildComponent implements AfterViewInit {
  @ViewChild(BaseComponent) base: BaseComponent;
  constructor() {}

  ngAfterViewInit() {
    this.base.fillCanvas();
  }
}

children html

<app-base [templateRef]=" children Template"></app-base>

<ng-template # children Template> Child's extended template </ng-template>

stackblitz

Typescript相关问答推荐

React-Native运行方法通过监听另一个状态来更新一个状态

带有微前端的动态React路由问题

TS不推断类型在条件判断后具有属性'

如果一个变量不是never类型,我如何创建编译器错误?

将值添加到具有不同类型的对象的元素

`((PrevState:NULL)=>;NULL)|null`是什么意思?

如何使用Zod使一个基于其他字段值的字段为必填字段?

通配符路径与每条路径一起显示

APIslice-CreateAPI的RTK打字错误

在HighChats列时间序列图中,十字准线未按预期工作

@TANSTACK/REACT-QUERY中发生Mutations 后的数据刷新问题

如何过滤文字中的类对象联合类型?

是否有可能避免此泛型函数体中的类型断言?

如何正确调用创建的类型?

回调函数中的TypeScrip类型保护返回Incorect类型保护(具有其他未定义类型的返回保护类型)

使用强类型元组实现[Symbol.iterator]的类型脚本?

如何在Type脚本中创建一个只接受两个对象之间具有相同值类型的键的接口?

来自枚举的<;复选框和组件列表

React-跨组件共享功能的最佳实践

Typescript 是否可以区分泛型参数 void?