Meteor.user()
和localStorage.getItem('Meteor.userId')
返回NULL,直到页面刷新 我使用从Meteor.user()
值尝试和改变状态,因此重新渲染成分,但它会一直返回null
,直到页面重新加载。Meteor.user()和localStorage.getItem(“Meteor.userId”)返回null
export default class Header extends React.Component {
constructor(props){
super(props);
this.state = {loggedIn: Meteor.user() !== null}// false if no user
//is logged in
//save the component context to avoid scope issues
thisComponent = this;
}
onSubmit(e){
e.preventDefault();
let el = $(e.target);
let email = el.find('#email').val();
let password = el.find('#password').val();
let confirmPassword = el.find('#confirmPassword').val();
// Login user
Meteor.loginWithPassword(email, password, err => {
if (err) {
Materialize.toast(err.reason, 4000);
} else {
Materialize.toast('Success loging in', 4000);
//change state just to cause a rerender
thisComponent.setState({ loggedIn: true })
}
});
}
render() {
//if user is logged in
if(Meteor.user()) {
return <Redirect to='/dashboard' />;
} else {
return <LoginComponent />;
}
}
张贴代码 – Karim