Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Totally confused about this.next() in Meteor iron-router

I upgraded to Meteor 1.0, installed the latest iron-router package, tried to run my app and got this nice warning in my console log:

Route dispatch never rendered. Did you forget to call this.next() in an onBeforeAction?

So I tried to modify my routes according to the new version.

this.route('gamePage', {
        path: '/game/:slug/',
        onBeforeAction: [function() {
            this.subscribe('singlePlayer', this.params.slug).wait();
            var singlePlayer = this.data();
            if (singlePlayer) {
                if (singlePlayer.upgrade) {
                    this.subscribe('upgrades', this.params.slug).wait();
                    this.next();
                }
                this.next();
            }
            this.next();
        }],
        data: function() {
            return Games.findOne({slug: this.params.slug});
        },
        waitOn: function() { return [Meteor.subscribe('singleGame', this.params.slug)]}
    });

How can I fix this? Any help would be greatly appreciated.

like image 675
user3475602 Avatar asked Nov 01 '14 20:11

user3475602


1 Answers

Try removing all the .wait()s and removing the array around your onBefore function.

With the new API this.next() replaces .wait().

like image 195
benstr Avatar answered Oct 16 '22 16:10

benstr