注册过程在MeteorJS

时间:2016-04-15 18:14:14

标签: javascript meteor reactjs

我正在使用Meteor和ReactJS构建一个简单的blog application。而且我使用react-komposer来使其具有反应性。我遇到的问题与用户注册/登录过程有关。 帐户基础,帐户密码是我用来处理寄存器的两个Meteor软件包&登录功能。

这是 LoginHeader 组件

import React from 'react';

const LoginRegister = () => (
    <div>
        <a href="/login" className="navbar-link">Login  | </a> 
        <a href="/register" className="navbar-link">Register </a>
    </div>
);

const LoginHeader = (user) => (
   <div>        
     <p className="navbar-text navbar-right">
        {user ? user.user.emails[0].address : <LoginRegister />}
     </p>       
   </div>
);

export default LoginHeader;

这是 LoginHeader 容器

import LoginHeader from '../components/login_header.jsx';
import {useDeps, composeAll, composeWithTracker, compose} from 'mantra-core';

export const composer = ({context}, onData) => {
  const {Meteor, Collections} = context();

  var user = Meteor.user();

  onData(null, {user});
};

export const depsMapper = (context, actions) => ({
  context: () => context
});

export default composeAll(
  composeWithTracker(composer),
  useDeps(depsMapper)
)(LoginHeader);

我们对它的关注是 user.user.emails [0] .address 工作了一段时间,突然间它开始给我错误未捕获的TypeError :无法阅读财产&#39;电子邮件&#39;未定义的

帮助我弄清楚我在这里做错了什么。

2 个答案:

答案 0 :(得分:1)

遇到了同样的问题。你确定用户已加载吗?请参阅以下问题:

What am I doing wrong when manipulating data in Meteor/MongoDB?

确保找到Michel Floyd指出的确定路径。检查MongoDB中用户集合的结构。

答案 1 :(得分:0)

如果user = Meteor.user(),则电子邮件地址位于user.emails.address[0]而不是user.user...