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