Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor React组件在注销时未更新_Meteor_Reactjs_Meteor Accounts_Meteor React - Fatal编程技术网

Meteor React组件在注销时未更新

Meteor React组件在注销时未更新,meteor,reactjs,meteor-accounts,meteor-react,Meteor,Reactjs,Meteor Accounts,Meteor React,我有一个页面,它将显示一个不同的组件,取决于用户是否登录或注销 在渲染区域中,我有: var layout; if (Meteor.userId()) { layout = <BoxSignedIn />; } else { layout = <BoxSignedOut />; } return ( layout ) } var布局;

我有一个页面,它将显示一个不同的组件,取决于用户是否登录或注销

在渲染区域中,我有:

 var layout;
 if (Meteor.userId()) {
    layout = <BoxSignedIn />;
 } else {
    layout = <BoxSignedOut />;
 }

 return (

            layout                               
        ) 
  }
var布局;
if(Meteor.userId()){
布局=;
}否则{
布局=;
}
返回(
布局
) 
}
现在,如果我注销并刷新应用程序,这确实有效,但如果我只是注销而不刷新,则不起作用

以下是已登录组件的代码:

从“React”导入React; 从“react dom”导入react dom

export default class BoxSignedIn extends React.Component{

constructor(){
 super();   
 }

render(){   
 return (   
                   <div>signed in </div>

        ) 
}
}
导出扩展React.Component中的默认类BoxSignedIn{
构造函数(){
超级();
}
render(){
报税表(
签到
) 
}
}

这是因为React仅在组件的状态或道具更改时更新组件,但是
Meteor.userId()
不是这两个。您需要使用
createComponent
Meteor.userId()
转换为React属性

从“React”导入React;
从“流星/流星”导入{Meteor};
从“meteor/react meteor数据”导入{createContainer};
类MyComponent扩展了React.Component{
render(){
返回this.props.userId?:;
}
}
导出默认createContainer(()=>{
返回{
userId:Meteor.userId()
};
},霉素组分);

这是因为React仅在组件的状态或道具更改时更新组件,但是
Meteor.userId()
不是这两个。您需要使用
createComponent
Meteor.userId()
转换为React属性

从“React”导入React;
从“流星/流星”导入{Meteor};
从“meteor/react meteor数据”导入{createContainer};
类MyComponent扩展了React.Component{
render(){
返回this.props.userId?:;
}
}
导出默认createContainer(()=>{
返回{
userId:Meteor.userId()
};
},霉素组分);

在向StackOverflow过账时,请尝试格式化您的代码。这有助于我们更快地理解您的问题。请在发布到StackOverflow时尝试格式化您的代码。这有助于我们更快地理解您的问题。