Redux Thunk异步反应组件未装载
Redux Thunk异步反应组件未装载,redux,react-redux,redux-thunk,Redux,React Redux,Redux Thunk,componentDidMount(){ this.props.fetchAccountData(); } render(){ const{accounts}=this.props.accountData; policyDetailsInfo=帐户[0]。策略摘要; accountDetails=账户[0]; 返回( ) } 常量mapStateToProps=状态=>({ accountData:state.accountData }); const mapDispatchToProps={
componentDidMount(){
this.props.fetchAccountData();
}
render(){
const{accounts}=this.props.accountData;
policyDetailsInfo=帐户[0]。策略摘要;
accountDetails=账户[0];
返回(
)
}
常量mapStateToProps=状态=>({
accountData:state.accountData
});
const mapDispatchToProps={
获取帐户数据
};
导出默认连接(mapStateToProps、mapDispatchToProps)(AccountHome);
关于,如果正确配置了reducer,则每当异步调用响应到达时,
render()
方法AccountHome
组件将被触发(因为accountData
中有更改,说明注册了AccountHome
的位置)
有许多方法可以编写逻辑来处理accountData,但为了简单起见,并集中在粘贴的代码中,请更新render()
方法,并使其了解accountData prop
:
const mapStateToProps = state => ({
accountData: state.accountData
})
render(){
const accounts=this.props.accountData;
如果(!accounts | |!accounts.length){
//设置一个简单的加载解决方案
//使用空帐户避免错误
返回(
正在加载内容。。。
}
}
//这里有账户内的数据
const policyDetailsInfo=帐户[0]。策略摘要;
const accountDetails=账户[0];
返回(
}
}
const mapStateToProps = state => ({
accountData: state.accountData
})
render() {
const accounts = this.props.accountData;
if(!accounts || !accounts.length ) {
// set a simple loading solution
// avoid errors using empty accounts
return (
<div>
Loading content...
</div>
}
}
// here accounts has data inside
const policyDetailsInfo = accounts[0].policy_summary;
const accountDetails = accounts[0];
return (
<div>
<Account
accountDetails={accountDetails}
policyDetails={policyDetailsInfo}
/>
</div>
}
}