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);
  • 在这里,到componentDidMount中,fetchAccountData方法是 异步调用
  • 这里我想知道fetchAccountData响应何时得到 之后,只有控件进入渲染方法。在这里它将如此 多次进入render方法,直到异步调用方法 答复
  • 由于此控件,进入子组件,而该组件没有 无法获取响应后可能会填充的属性 从异步调用

  • 关于,

    如果正确配置了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>
      }
    }