35 lines
725 B
Markdown
35 lines
725 B
Markdown
|
```
|
||
|
webpack:///../lib/@avocado/packages/entity/trait.js?:29
|
||
|
entity.on("".concat(type, ".trait-").concat(traitType), listeners[type], this);
|
||
|
```
|
||
|
|
||
|
This is because you subclassed `Trait` but forgot to pass through the arguments
|
||
|
from your subclass constructor to the superclass constructor. Always default
|
||
|
to writing your Trait definition like:
|
||
|
|
||
|
```
|
||
|
class MyTrait extends Trait {
|
||
|
|
||
|
initialize() {
|
||
|
// ...
|
||
|
}
|
||
|
|
||
|
}
|
||
|
```
|
||
|
|
||
|
All trait initialization should be done in `initialize`.
|
||
|
|
||
|
If you need really need to access arguments in your subclass constructor, opt
|
||
|
to pass along `arguments` instead, such as:
|
||
|
|
||
|
```
|
||
|
class MyTrait extends Trait {
|
||
|
|
||
|
constructor(entity, params, state) {
|
||
|
super(...arguments);
|
||
|
// ...
|
||
|
}
|
||
|
|
||
|
}
|
||
|
```
|