redux 怎样保证state改变后再请求新的数据?

列表是个接口,然后根据列表的id去拿具体的详细信息,然后去拼接redux state中列表的信息,但是在列表请求后的then去调用详情的接口,并不能保证列表的state已经拿到了,这个该怎么处理?用的redux-thunk

阅读 3.1k
2 个回答

redux实践异步并不友好,尝试使用redux-thunk或redux-saga吧

按我的理解,你是不是想要请求两个接口,然后将两个接口返回的数据拼接,放到 state 中?

如果是这样,那基本上和 redux 就没什么关系了。可以封装一下接口实现的 Promise,将两个请求归并为一个,写法类似下面这样:

const fetch = require('isomorphic-fetch');
const doubanApi = 'https://api.douban.com/';

// v2/movie/top250
// v2/movie/subject/:id

// 获取豆瓣电影 Top250 No.1 的电影信息
fetch(`${doubanApi}v2/movie/top250`)
    .then(r => r.json())
    .then((data) => {
        const firstId = data.subjects[0].id;
        return fetch(`${doubanApi}v2/movie/subject/${firstId}`);
    })
    .then(r => r.json())
    .then((data) => { console.log(data); })
    .catch((e) => { console.log(e); });
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题