第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

react dispatch一次shouldComponentUpdate方法卻輸出了兩次。

react dispatch一次shouldComponentUpdate方法卻輸出了兩次。

慕虎7371278 2019-05-25 16:25:19
importReact,{Component}from'react';import{connect}from'react-redux';importintlfrom'intl';import{injectIntl,intlShape}from'react-intl';import{Layout,Menu,Row,Col,Modal,messa`請輸入代碼`ge,Spin}from'antd';importLoginFormfrom'./loginForm.jsx';importWrappedRegistrationFormfrom'./registerForm.jsx';importForgetPassordfrom'./forgetPasswordForm.jsx';import{LOGIN,REGISTER_ASYNC}from'../../utils/events.jsx';import{tipMessage}from'../common/tipMessage.jsx';message.config({top:60,duration:2,});classLoginPageextendsComponent{constructor(props){super(props);this.state={username:'',password:'',message:'',showModal:false,showGetPassModal:false,isLoading:false,loadTimeoutID:0,};this.handleSubmit=this.handleSubmit.bind(this);this.register=this.register.bind(this);this.handleOk=this.handleOk.bind(this);this.handleCancel=this.handleCancel.bind(this);this.registerSubmit=this.registerSubmit.bind(this);this.forgetPassword=this.forgetPassword.bind(this);this.handleLookOk=this.handleLookOk.bind(this);this.handleLookCancel=this.handleLookCancel.bind(this);this.forgetPasswordSubmit=this.forgetPasswordSubmit.bind(this);this.showLoadingPage=this.showLoadingPage.bind(this);this.hideLoadingPage=this.hideLoadingPage.bind(this);}shouldComponentUpdate(nextProps,nextState){console.log('shouldComponentUpdate',nextProps)returntrue;}componentWillReceiveProps(nextProps){//console.log('dfdfsdf',nextProps)//if(nextProps.jsonData){//this.setState({isLoading:false});//constisTimeOut=this.hideLoadingPage(false);//if(nextProps.jsonData.from&&nextProps.jsonData.from==='register'){//if(nextProps.jsonData.status.code===1){//tipMessage('success',this.props.intl.formatMessage({id:'Register_succeess'}));////this.setState({showModal:false});//return;//}elseif(nextProps.jsonData.status.code===1004){//this.setState({showModal:false});//tipMessage('error',this.props.intl.formatMessage({id:'Register_messageRepeat'}));//}else{//this.setState({showModal:false});//tipMessage('error',this.props.intl.formatMessage({id:'Register_fial'}));//}//return;//}//if(!isTimeOut){//如果登錄未超時//if(nextProps.jsonData.status.code===1){//constdata=nextProps.jsonData.data;//consttoken=data.token;//constusername=data.user_name;//constmenus=data.menus;//constdeveloper=data.developer;//localStorage.setItem('jwtToken',token);//localStorage.setItem('loggedinusername',username);//localStorage.setItem('menus',JSON.stringify(menus));//this.props.router.push(developer.length>0?'/ProductManage':'/DeveloperInfo');//}else{//message.error(this.context.intl.formatMessage({id:'LoginPage_errormessage'}));//this.setState({message:nextProps.jsonData.status.msg});//}//}//}}handleSubmit(info){constlanguages=navigator.languages;letcurrentLang=null;if(languages!==undefined){if(languages[0]==='en-US'||languages[0]==='en'){currentLang='en-US';}else{currentLang='zh-CN';}}else{if(languages==='en-US'||languages==='en'){currentLang='en-US';}else{currentLang='zh-CN';}}info.languageid=currentLang;this.props.dispatch({type:LOGIN,user:info});this.showLoadingPage();}registerSubmit(registerValues){if(registerValues==='cancel'){this.setState({showModal:false});return;}console.log('注冊')this.props.dispatch({type:REGISTER_ASYNC,user:registerValues});}showLoadingPage(){constloadTimeoutID=setTimeout(()=>{this.hideLoadingPage(true);},15000);this.setState({isLoading:true,loadTimeoutID:loadTimeoutID});}hideLoadingPage(isTimeOut){clearTimeout(this.state.loadTimeoutID);this.setState({isLoading:false});if(isTimeOut){message.error(this.props.intl.formatMessage({id:'LoginPage_overtimeError'}),3);}returnisTimeOut;}register(){this.setState({showModal:true});}forgetPassword(){this.setState({showGetPassModal:true});}forgetPasswordSubmit(values){if(values==='cancel'){this.setState({showGetPassModal:false});}}handleOk(){this.setState({showModal:false});}handleCancel(){this.setState({showModal:false});}handleLookCancel(){this.setState({showGetPassModal:false});}handleLookOk(){this.setState({showGetPassModal:false});}render(){const{intl}=this.props;const{Header,Content,Footer}=Layout;const{username,password}=this.state;return({intl.formatMessage({id:'LoginPage_welcome'})}iHealthApi?2016CreatedbyiHealthCloud);}}LoginPage.contextTypes={intl:React.PropTypes.object.isRequired}constmapStateToProps=(state)=>({jsonData:state.loginReducer.jwtToken});constmapDispatchToProps=(dispatch)=>({dispatch});exportdefaultconnect(mapStateToProps,mapDispatchToProps)(injectIntl(LoginPage))為什么dispatch一次而shouldComponentUpdate卻調(diào)用了兩次?各位幫幫忙!!
查看完整描述

2 回答

?
千巷貓影

TA貢獻1829條經(jīng)驗 獲得超7個贊

代碼太多了,看的不是特別仔細。shouldComponentUpdate只會在組件將要重新渲染的時候才會被調(diào)用,所以我大膽的猜一下,應(yīng)該是接收到新props內(nèi)部有多個被更新的數(shù)據(jù)。
                            
查看完整回答
反對 回復(fù) 2019-05-25
?
翻翻過去那場雪

TA貢獻2065條經(jīng)驗 獲得超14個贊

varshallowCompare=require('react-addons-shallow-compare');shouldComponentUpdate(nextProps,nextState){
varme=shallowCompare(this,nextProps,nextState);
console.log('scroll',me)
returnme;
}
試試這個。數(shù)據(jù)不同時候,才會進行update
                            
查看完整回答
反對 回復(fù) 2019-05-25
  • 2 回答
  • 0 關(guān)注
  • 1018 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號