react中一个请求依赖于另一个请求的结果

react中发请求一般放在生命周期的componentDidMount事件中,但我现在有个需求是要发两个请求,第二个请求的参数是第一个请求的结果。

比如第一个请求的结果:state.res1 我如果把请求都直接放在componentDidMount中,第二个请求一开始是获取不到参数的。

我现在的做法是第一个请求除了更新state.res1,还会更新一个boolean:state.res1IsCompleted 标识,再把第二个请求放在componentDidUpdate中,然后根据res1IsCompleted这个标识判断要不要发起第二个请求。

但总觉得有点怪,如果我的请求依赖过多的话(因为现在在做工作流相关页面,设计的请求会很多),会有一堆的标识状态放在state中。


萧十郎
浏览 651回答 1
1回答

米琪卡哇伊

js 是异步的,肯定拿不到。给你推荐两个方法。从你的描述中没有看到redux之类的东西,所以我假设你只有react,调用接口使用的是fetch.回调componentDidMount() {     fetch(url).then(data => data.json()).then(res= {         fetch(url2, {body: {res}});     }) }PromisecomponentDidMount() {    const data1 = new Promise(resolve => {         fetch(url).then(res => res.json()).then(data => resolve(data));     });          data1.then(data => {         fetch(url2, {body: {data}});     }) }还有ES8提供的 async await .
打开App,查看更多内容
随时随地看视频慕课网APP