我是 Meteor 的新手,所以我一直在玩,现在我遇到了这个问题。
我正在使用 React Router 尝试显示基于 URL /(:userId) 的主题。如果 URL 中没有插入 userId,则应显示当前用户的主题,如果没有当前用户,则应显示默认主题。
它在随机工作。有时我得到正确的主题,有时在读取 themeColor 时它会抛出 undefined 即使数据在那里。我可以通过 console.log 看到它总是得到正确的 ID,但 findOne 仍然可以抛出未定义的。当我更改 URL (/xyz) 并返回到默认 URL (/) 时,它会特别发生。
我通过控制台验证了 userId 是 themeColor 和 themeTextColor 的实际所有者。
我正在使用 React、React-router、自动发布。我删除了不安全的。
getMeteorData() {
var currentViewedPageId = this.props.params.userId? this.props.params.userId:(Meteor.userId()?Meteor.userId():false);
console.log(currentViewedPageId); //Allways right
console.log(Personalization.findOne({owner: currentViewedPageId}).themeColor); //Sometimes undefined, sometimes not
if(currentViewedPageId)
{
return {
currentUser: Meteor.user(),
themeColor: Personalization.findOne({owner: currentViewedPageId}).themeColor,
themeTextColor: Personalization.findOne({owner: currentViewedPageId}).themeTextColor
};
}
return {
currentUser: Meteor.user()
}
},