andreypopp / andreypopp/react-async
this.<function from another mixin> is undefined in browser (isomorphic app)
- Vorherrschende Sprache
- JavaScript
- Sterne
- 440
- Forks
- 24
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
I've been experiencing a weird issue when using react-async in conjunction with react-router-component in my isomorphic app.
Given the following mixin:
``` javascript
...
MyMixin = {
foo: function() {
console.log("hello!");
}
}
...
```
and the React class:
``` javascript
...
var MyView = React.createClass({
mixins: [Async.Mixin, MyMixin],
getInitialStateAsync: function(cb) {
this.foo(); // only works in the browser
...
}
...
});
```
When mounting, the browser will throw an error saying `this.foo()` is undefined. The workaround is to do something like (courtesy of @theadam):
``` javascript
...
var MyView = React.createClass({
mixins: [Async.Mixin, MyMixin],
getInitialStateAsync: function(cb) {
var component = this.type && this.type.prototype ? this.type.prototype : this;
component.foo(); // Works now
...
}
});
```
Obviously, the fix is less than ideal when using it in a larger app. Am I doing something wrong or is this an oversight?
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Bewertung
Dieses Issue wurde noch nicht bewertet.