Javascript React HOC模式-处理异步方法

Javascript React HOC模式-处理异步方法,javascript,asynchronous,reactjs,Javascript,Asynchronous,Reactjs,我想创建一个HOC容器,异步改变它的状态 它将由两个组件使用 这些组件订阅HOC异步方法的成功/失败并相应更新其内部状态的最佳方式是什么?REDUX也可以使用 您的组件必须是纯的和可重用的,不要将它们绑定到状态 因为应用程序只会浪费系统资源进行不必要的重新部署 提供。国家的使用应该尽可能地受到限制。什么时候 如果你使用state,你就有可能引入一些 (有时是细微的)行为错误和呈现错误 组件。如果您决定使用属性定义初始 国家;您的属性可能会更改,保留初始状态 基于过时数据的计算。还引入了紧耦合 在

我想创建一个HOC容器,异步改变它的状态

它将由两个组件使用


这些组件订阅HOC异步方法的成功/失败并相应更新其内部状态的最佳方式是什么?

REDUX也可以使用

  • 您的组件必须是纯的和可重用的,不要将它们绑定到状态 因为应用程序只会浪费系统资源进行不必要的重新部署 提供。国家的使用应该尽可能地受到限制。什么时候 如果你使用state,你就有可能引入一些 (有时是细微的)行为错误和呈现错误 组件。如果您决定使用属性定义初始 国家;您的属性可能会更改,保留初始状态 基于过时数据的计算。还引入了紧耦合 在需要定义的属性和内部 组件的状态
  • 一般规则是不要对静态组件使用状态。如果你 组件不需要根据外部因素进行更改,然后 不要使用状态。最好在中计算渲染值 render()方法。链接

  • import React,{Component}来自'React';
    export const fetchResource=msg=>WrappedComponent=>
    类扩展组件{
    建造师(道具){
    超级(道具);
    此.state={
    资源:null,
    msg:null
    };
    }
    componentDidMount(){
    this.setState({msg})
    axios.get()https://api.github.com/users/miketembos/repos')
    。然后((响应)=>{
    控制台日志(响应);
    如果(响应状态===200){
    返回响应数据;
    }否则{
    抛出新错误(“服务器响应不正常”);
    }
    })
    .然后((响应数据)=>{
    this.setState({resource:responseData});
    }).catch((错误)=>{
    this.props.history.pushState(null,/error');
    });
    }
    render(){
    const{resource}=this.state
    //检查资源是否有效,例如不为空或null
    如果(!resource){返回加载……或显示任何其他要加载的组件……}
    返回
    }
    
    }
    请不要发布代码图片,而是发布代码。React/Facebook的原始参考模式Flux也是一个很好的起点。Redux是从它派生的许多*ux模式之一。