Javascript 在meteor react渲染执行之前,如何允许先将数据订阅到init?
我使用meteor react、kadira:flowrouter和kadira:react布局,删除自动发布和不安全,我得到 未捕获的TypeError:无法读取未定义的属性“map” 在订阅从mongoDB接收数据之前,首先执行React的呈现函数。在执行渲染之前,如何让数据先加载Javascript 在meteor react渲染执行之前,如何允许先将数据订阅到init?,javascript,meteor,reactjs,Javascript,Meteor,Reactjs,我使用meteor react、kadira:flowrouter和kadira:react布局,删除自动发布和不安全,我得到 未捕获的TypeError:无法读取未定义的属性“map” 在订阅从mongoDB接收数据之前,首先执行React的呈现函数。在执行渲染之前,如何让数据先加载 Store = React.createClass({ mixins: [ReactMeteorData], getMeteorData() { var coursesFet
Store = React.createClass({
mixins: [ReactMeteorData],
getMeteorData() {
var coursesFetch
Meteor.subscribe("getAllCourses", () => {
coursesFetch = Courses.find().fetch()
console.log(coursesFetch);
})
return {
courses: coursesFetch
}
},
render() {
let displayCourses = this.data.courses.map((data) => {
return (
<StoreItemButton key={data._id} title={data.title} description={data.description}/>
)
})
return (
<div className="container-fluid">
<div className="card-columns">
{displayCourses}
</div>
</div>
)
}
})
Store=React.createClass({
mixins:[数据],
getMeteorData(){
var coursesFetch
Meteor.订阅(“getAllCourses”,()=>{
coursesFetch=Courses.find().fetch()
console.log(coursesFetch);
})
返回{
课程:coursesFetch
}
},
render(){
让displayCourses=this.data.courses.map((数据)=>{
返回(
)
})
返回(
{displayCourses}
)
}
})
我只是通过向FlowRouter添加订阅功能来解决这个问题
router.jsx
FlowRouter.route("/store", {
name: "Store",
subscriptions: function() {
this.register('getAllCourses', Meteor.subscribe('getAllCourses'));
},
action (params) {
renderMainLayoutWith(<Store/>)
}
})
FlowRouter.route(“/store”{
名称:“商店”,
订阅:函数(){
注册('getAllCourses',Meteor.subscribe('getAllCourses');
},
行动(参数){
RenderMailyoutWith()
}
})
Store.jsx
Store = React.createClass({
mixins: [ReactMeteorData],
getMeteorData() {
return {
courses: Courses.find().fetch()
}
},
render() {
let displayCourses = this.data.courses.map((data) => {
return (
<StoreItemButton key={data._id} title={data.title} description={data.description}/>
)
})
return (
<div className="container-fluid">
<div className="card-columns">
{displayCourses}
</div>
</div>
)
}
})
Store=React.createClass({
mixins:[数据],
getMeteorData(){
返回{
课程:课程。查找()。获取()
}
},
render(){
让displayCourses=this.data.courses.map((数据)=>{
返回(
)
})
返回(
{displayCourses}
)
}
})