老师,关于异步这块我有些疑惑

来源:4-4 Redux状态管理4-更进一步,让 Redux 可以处理异步

渴望做梦

2018-11-11

虽然redux-thunk可以处理异步,但是我觉得不用它也可以处理异步啊,比如如下场景:

class App extends React.Component {
	componentDidMount() {
		//异步开始前我执行一个action creator 比如修改loading=true
		fetchDataBefore()
		//执行异步操作,从服务器获取数据
		fetch('/getData')
			.then(data => {
				//获取到数据,再执行一个action creator 修改store
				fetchDataSuccess(data)
			})
			.catch(err => {
				//如果失败,执行失败的action creator isloading=false
				fetchDataFail()
			})
	}
	
	render() {
		...
	}
}

我觉得这样搞应该也可以达到异步修改store的效果吧,那为什么还要thunk呢?

写回答

1回答

慕瓜8449030

2018-11-29

这样代码的入侵性太强,所有的异步任务,都要卸载组件内部,没法抽离出来

0
1
渴望做梦
非常感谢!
2018-12-01
共1条回复

Redux+React Router+Node.js全栈开发

全网唯一的React 16+Redux+React Router4实战课程,学到手是你的真本领!

1822 学习 · 750 问题

查看课程