我无法访问对象的属性

问题描述:

下一行正常工作,我可以看到在控制台日志整个对象:我无法访问对象的属性

Meteor.subscribe('projects') 
var oneProject = Projects.findOne(key1); 
console.log(oneProject) 

在控制台中,我可以看到oneProject的属性,甚至name财产。

下列行

现在,结果是一个错误:

Meteor.subscribe('projects') 
var oneProject = Projects.findOne(key1); 
console.log(oneProject.name) 

的错误是:“无法读取属性‘名’未定义”。

这是整个代码:

import { Meteor } from 'meteor/meteor'; 
import { withTracker } from 'meteor/react-meteor-data'; 
import { Projects } from '/imports/api/projects.js'; 
import ProjectFormUpdate from './ProjectFormUpdate.jsx'; 

export default ProjectFormUpdateContainer = withTracker(({ key1 }) => { 
    Meteor.subscribe('projects') 
    var oneProject = Projects.findOne(key1); 
    console.log(oneProject.name) 
    return { 
    oneProject:oneProject, 
    }; 
})(ProjectFormUpdate); 

流星订阅是异步。这意味着数据并不总是立即可用。

Tracker.autorun(() => { 
    const sub = Meteor.subscribe('projects'); 
    if (sub.ready()){ 
    const oneProject = Projects.findOne(key1); 
    console.log(oneProject.name); 
    } 
}); 

在订阅准备就绪之前,不会尝试查找项目。

+0

好吧,现在我可以在控制台中输入“名称”,但它仍然不让我将Project文档传递给组件属性。错误:“不能转换未定义或空对象在键()” – Reactib

+0

也许我应该打开另一个问题... – Reactib

+0

我创建了另一个问题: https://*.com/questions/46746047/how-到通-AN-流星文档对象从容器到反应组分 – Reactib