Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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
Javascript 道具更改时重新启用功能部件_Javascript_Reactjs_Functional Programming - Fatal编程技术网

Javascript 道具更改时重新启用功能部件

Javascript 道具更改时重新启用功能部件,javascript,reactjs,functional-programming,Javascript,Reactjs,Functional Programming,当传递给子组件的父状态发生更改时,我无法重新命名组件。MapNav组件包含触发更改当前显示弹出窗口的方法的按钮。我的问题是,当有人单击zaloguj或wyloguj时,重新渲染UserPopup按钮,它应该可以工作,但它不能工作,我无法找出问题所在,我也不想在isLoggedIn状态更改时触发动画,还有一件事是登录方法正确更改状态。isLoggedIn状态只是暂时的,稍后我将更改为使用store。我试图编写尽可能多的功能组件,但在某些情况下,我无法避免使用状态,我敢打赌我的代码中存在问题,因此我

当传递给子组件的父状态发生更改时,我无法重新命名组件。MapNav组件包含触发更改当前显示弹出窗口的方法的按钮。我的问题是,当有人单击zaloguj或wyloguj时,重新渲染UserPopup按钮,它应该可以工作,但它不能工作,我无法找出问题所在,我也不想在isLoggedIn状态更改时触发动画,还有一件事是登录方法正确更改状态。isLoggedIn状态只是暂时的,稍后我将更改为使用store。我试图编写尽可能多的功能组件,但在某些情况下,我无法避免使用状态,我敢打赌我的代码中存在问题,因此我将感谢所有改进技巧

constmapnav=(道具)=>{
返回
} const UserPopup=(道具)=>{ 返回 {(props.isLoggedIn)( 扎洛戈瓦尼 威洛古 ) : ( 尼扎洛戈瓦尼 扎洛古伊 ) } ; }; 功能欢迎(道具){ 返回 信息自动更新。 基本面板示例 ; } 类MapHeader扩展了React.Component{ 建造师(道具){ 超级(道具); 此.state={ currentPopup:null, 伊斯洛格丁:错, 用户名:'gregorowicz。k@gmail.com', }; this.onInfoClick=this.onInfoClick.bind(this); this.onUserIconClick=this.onUserIconClick.bind(this); this.logIn=this.logIn.bind(this); } OnInfo点击=(e)=>{ e、 预防默认值(); 这个.setPopup(); } onUserIconClick=(e)=>{ e、 预防默认值(); const loginPopup=; 此.setPopup(loginPopup); } setPopup=(obj)=>{ this.state.currentPopup==null?this.setState({currentPopup:obj}):this.setState({currentPopup:null}); } 登录=(e)=>{ this.setState({isLoggedIn:!this.state.isLoggedIn}); } render(){ 返回( 切换导航 {MapNav({onInfoClick:this.onInfoClick,onUserIconClick:this.onUserIconClick})} {this.state.currentPopup?this.state.currentPopup:null} ) } } //渲染它 ReactDOM.render( , document.getElementById(“react”) );
我已经解决了。在我的代码中有一个currentPopup状态,它存储了当前显示的弹出窗口,要查看更改,我必须在isLogggedIn状态更改后卸载并再次装载组件,所以我更改了显示当前弹出窗口的方式。我只存储提供有关当前组件信息的简单字符串值,而不是以状态存储整个组件。无论如何,谢谢你的提示,我一定会在我的代码中应用它们

constmapnav=(道具)=>{
返回
} const UserPopup=(道具)=>{ 返回 {(props.isLoggedIn)( 扎洛戈瓦尼 威洛古 ) : ( 尼扎洛戈瓦尼 扎洛古伊 ) } ; }; 功能欢迎(道具){ 返回 信息自动更新。 基本面板示例 ; } 类MapHeader扩展了React.Component{ 建造师(道具){ 超级(道具); 此.state={ currentPopup:null, isLoggedIn:null, }; this.onInfoClick=this.onInfoClick.bind(this); this.onUserIconClick=this.onUserIconClick.bind(this); this.logIn=this.logIn.bind(this); } OnInfo点击=(e)=>{ e、 预防默认值(); this.setState({currentPopup:this.state.currentPopup==='info'?null:'info'}); } onUserIconClick=(e)=>{ e、 预防默认值(); this.setState({currentPopup:this.state.currentPopup==='user\u login'?null:'user\u login'}); } setPopup=(obj)=>{ this.setState({currentPopup:this.state.currentPopup==='user\u login'?null:'user\u login'}); } 登录=(e)=>{ this.setState({isLoggedIn:!this.state.isLoggedIn}); } render(){ 返回( 切换导航 {MapNav({onInfoClick:this.onInfoClick,onUserIconClick:this.onUserIconClick})} {this.state.currentPopup=='info'?:null} {this.state.currentPopup==='user\u login'( ):null} ) } } //渲染它 ReactDOM.render( , document.getElementById(“react”) );
我已经解决了。在我的代码中有一个currentPopup状态,它存储了当前显示的弹出窗口,要查看更改,我必须在isLogggedIn状态更改后卸载并再次装载组件,所以我更改了显示当前弹出窗口的方式。我只存储提供有关当前组件信息的简单字符串值,而不是以状态存储整个组件。无论如何,谢谢你的提示,我一定会在我的代码中应用它们

constmapnav=(道具)=>{
返回
} const UserPopup=(道具)=>{ 返回 {(props.isLoggedIn)( 扎洛戈瓦尼 威洛古 ) : ( 尼扎洛戈瓦尼 扎洛古伊 ) } ; }; 功能欢迎(道具){ 返回 信息