andreypopp / andreypopp/react-async

this.<function from another mixin> is undefined in browser (isomorphic app)

Aperta
#41 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
JavaScript
Stelle
440
Fork
24
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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?

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.