2016-07-25 67 views
-1

我正在尝试在Meteor和React中创建一个登录系统。 我想显示不同的内容,这取决于羯羊或没有用户登录。(Meteorjs/React)检查用户是否已登录

export default class LoginForm extends Component { 

render() { 
    if (Meteor.userId() === null) return(// if user is not logged in 
     display HTML stuff); 
    } 

    return(// user is logged in 
     display other stuff 
    ); 
} 
} 

,这并不为Meteor.userId工作()在登录后总是不确定的。

是否有其他可能性?我有这样的火焰:

{{#if currentUser}} doStuff{{/if}} 

也可以在React中使用它吗?

回答

1

做相反的反应,流星数据我用ultimatejs:TRA克尔反应的

出口默认类LoginForm的扩展TrackerReact(组件){

render() { 
    if(Meteor.user())return (...); // user logged in 
    if (Meteor.user()===null)return(...); // user logged out 
    //else page is connecting to backend 
    } 
} 
3

react-meteor-data包是专为集成而设计的。 Meteor guide更详细地解释了这一点。

流星数据应作为道具传入组件。该组件应根据对道具的更改重新呈现自身。

0
if(Meteor.user()){ 
} 

if(Meteor.userId()){ 
} 

应检查登录的用户

export default class LoginForm extends Component { 

render() { 
if (Meteor.userId()){ 
let elementToBeRendered = 
//your elements 
<form></form> 
} 
else{ 
let elementToBeRendered = //your other elements 
} 
return (
{elementToBeRendered} 
) 
} 
} 

应该为你

感谢

0

您可以通过使用Meteor.loggingIn()它返回true或false检查。

在组件(LoginForm的)

您可以检查这样

 state = { 
       isLoggedIn: false, 
      } 

      componentDidMount() { 
       this.setState({ isLoggedIn: Meteor.loggingIn() }); 
      } 
render(){ 
    return(
      <div> 
      <b>{isLoggedIn ? is login : is not login}</b> 
      </div> 
);