将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;
},
});
谢谢,但我得到'ReferenceError:myProjects未定义'指向'data = {myProjects}' – Sylar
是的。谢谢 – Sylar