1
A
回答
1
REDUX也可以使用。
- 你的精铸件必须是纯净的,可重用的不配合他们说出 原因应用程序将只是浪费系统资源做unnessary重新 渲染。国家的使用应尽可能有限。当您使用状态 时,您可能会冒险在组件的行为和呈现中引入若干 (有时是微妙的)错误。如果您决定使用属性来定义您的初始状态 状态;你的属性可能会改变,保留你的初始状态 根据陈旧的数据进行计算。您还需要在需要定义的属性与组件的内部状态之间引入紧密耦合 。
一般规则是不使用静态组件的状态。如果 组件不需要改变,根据外部因素,则 不使用状态。最好在 render()方法中计算渲染值。链接https://www.youtube.com/watch?v=ymJOm5jY1tQ。
https://medium.com/@mweststrate/3-reasons-why-i-stopped-using-react-setstate-ab73fc67a42e#.h3ioly71l
import React, {Component} from 'react';
export const fetchResource = msg => WrappedComponent =>
class extends Component {
constructor(props){
super(props);
this.state = {
resource: null,
msg: null
};
}
componentDidMount(){
this.setState({msg})
axios.get('https://api.github.com/users/miketembos/repos')
.then((response)=>{
console.log(response);
if(response.status===200){
return response.data;
} else {
throw new Error("Server response wasn't ok");
}
})
.then((responseData)=>{
this.setState({resource:responseData});
}).catch((error)=>{
this.props.history.pushState(null, '/error');
});
}
render(){
const {resource} = this.state
//check if the resource is valid eg not empty or null
if(!resource){return <div>Loading...... or show any othe component you want load.....</div>}
return <Post {...this.props} {...resource } />
}
}
相关问题
- 1. 异步命令模式 - 异常处理
- 2. 异步方法中的异常处理
- 3. Rails异步处理模型
- 4. 从异步方法中处理事件
- 5. 异步方法与上下文处理
- 6. 如何处理异步I/O方法
- 7. 在异步方法中处理会话
- 8. 在React中处理异步请求的最佳模式是什么?
- 9. C#异步方法未运行模式
- 10. 异步/等待方法和异常处理的最佳做法
- 11. 任务异步模式和错误/异常/注销处理
- 12. 处理客户请求时,为什么异步模式比同步模式好?
- 13. 处理异步第三方HTTP请求
- 14. Node.js处理异步
- 15. Java异步处理
- 16. 异步处理ODP.NET
- 17. 异常处理反模式
- 18. 异步方法无法返回无效 - 我该如何处理?
- 19. 在C#中处理异步操作的命令模式和异步操作
- 20. 异步方法中的异步方法
- 21. 异步方法?
- 22. 异步TaskManager处理作业/步异常
- 23. 异步处理图像(Django)
- 24. Java异常处理方法
- 25. 了解ASP.NET异步处理
- 26. 处理异步错误处理
- 27. 同步处理异步输入
- 28. React HOC,instanceof,包装?
- 29. EJB和异步处理
- 30. dispatch_once用法用于异步处理
的代码,请不要发布图片,张贴代码,而不是。 – Bergi
React/Facebook的原始参考模式,Flux也是一个很好的起点。 Redux是从它衍生出的许多* ux模式之一。 https://facebook.github.io/flux/docs/overview.html –