- 28
- 0
在redux官方文档里面,针对异步给出的方案是:
export function fetchPosts(subreddit) {
return function (dispatch) {
dispatch(requestPosts(subreddit));//准备发起请求
return fetch(`http://www.subreddit.com/r/${subreddit}.json`)
.then(response => response.json())
.then(json => dispatch(receivePosts(subreddit, json)))//拿到请求结果
}
}
主要思路是:
- 这是一个特殊的action creator(返回了一个function)
- 在这个action creator里面,可以dispatch其他action
- 通过redux-thunk中间件,可以
dispatch(fetchPosts('sth'))
为什么异步请求不能直接写在容器组件的mapDispatchToProps里面?
const mapDispatchToProps = dispatch => ({
fetchTest: () => {
dispatch(fetch_request());//准备发起请求
fetch('/package.json')
.then(response => response.json())
.then(json => dispatch(fetch_success(json)))//拿到请求结果
}
});
@connect(mapStateToProps, mapDispatchToProps)
export default class MyContainer extends Component {
render() {
return (
<div>
<UIList />
<FetchBtn fetchTest={this.props.fetchTest} />
</div>
)
}
}
//Fetchbtn
handleClick = (e) => {
this.props.fetchTest();
}
感觉
1.不用引中间件(redux-thunk、redux-promise)了,也不用考虑中间件执行顺序等问题。
2.逻辑写在容器组件里面,感觉没什么毛病,UI组件如果需要,都可以拿到。
0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
