将ReactJs道具分配给FlowRouter

问题描述:

如何将道具从FlowRouter传递给我的反应组件。那可能吗?文档非常棒。将ReactJs道具分配给FlowRouter

Im做这样的事情:

FlowRouter.route('/dashboard', { 
    name: 'dashboard', 
    action(){ 
    var x = Projects.find().fetch(); // this not working 
    console.log(x); // x is []. Why? 
    ReactLayout.render(App, { 
     nav: <Nav />, 
    content: <Profile data={x}/> 
    }); 
    } 
}); 

在我的应用我想说this.props.data但数组是空的。我必须将逻辑放入反应组件。那是正确的方法吗?我希望不是。

我想你需要订阅...看到这里的文档https://github.com/kadirahq/flow-router#subscription-management

FlowRouter.route('/dashboard', { 
    name: 'dashboard', 
    subscriptions(){ 
     this.register('myProjects', Meteor.subscribe('projects')); 
    }, 
    action(){ 
    ReactLayout.render(App, { 
     nav: <Nav />, 
     content: <Profile data={myProjects}/> 
    }); 
    } 
}); 

但经过进一步审查,但实际上,建议你得到的阵营组件流星数据......看到这里的文档

https://kadira.io/academy/meteor-routing-guide/content/subscriptions-and-data-management/with-react

Profile = React.createClass({ 
    mixins: [ReactMeteorData], 
    getMeteorData() { 
     var data = {}; 
     var handle = Meteor.subscribe('projects'); 
     if(handle.ready()) { 
     data.projects = Projects.find({}); 
     } 
     return data; 
    },  
    }); 

范例项目:https://github.com/aaronksaunders/meteor-react-demo2

+0

谢谢,但我得到'ReferenceError:myProjects未定义'指向'data = {myProjects}' – Sylar

+0

是的。谢谢 – Sylar