Mat*_*gaj 6 typescript angular
我有一堂课:
import * as p5 from 'p5';
export class Snake{
constructor() { }
sketch = (p: p5) => {
p.setup = () => {
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在 app.component 中创建它的实例,如下所示:
import { Component } from '@angular/core';
import { Snake } from './snake';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
snake = new Snake();
}
Run Code Online (Sandbox Code Playgroud)
然后我通过 app.component 的模板将这个实例输入到我的组件中:
<game [snake]=snake ></game>
Run Code Online (Sandbox Code Playgroud)
在组件中,我尝试像这样使用它:
import { Component, OnInit, Input } from '@angular/core';
import { Snake } from '../snake';
@Component({
selector: 'game',
templateUrl: './game.component.html',
styleUrls: ['./game.component.css']
})
export class GameComponent implements OnInit {
@Input()
public snake: Snake;
constructor() { }
sketch = new p5(this.snake.sketch); // ERROR HERE
ngOnInit(): void { }
}
Run Code Online (Sandbox Code Playgroud)
我得到一个错误Property 'snake' is used before its initialization.
关于如何使它工作的任何想法?
移动这条线
sketch = new p5(this.snake.sketch);
Run Code Online (Sandbox Code Playgroud)
到 ngOnInit() 方法。现在您正在调用this.snake组件初始化,但 @Input 尚未传递给组件。
| 归档时间: |
|
| 查看次数: |
12741 次 |
| 最近记录: |