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时尝试格式化您的代码。这有助于我们更快地理解您的问题。