我是Reactjs的新手,我想把2个请求链接在一起。它很有效,但我想知道是否有更好的方法来做到这一点。
这是我的代码
const [data, setData] = useState([]);
const [data2, setData2] = useState([]);
useEffect(() => {
axios.get(api, config)
.then(res => {
setData(res.data);
})
.then(res => {
let id = data.compte.id;
axios.get(`http://localhost:8000/api/compte/${id}`, config).then(res => {
setData2(res.data);
})
})
.catch(err => {
console.log(err);
})
}, []);
1条答案
按热度按时间am46iovg1#
你很接近了,但有几个问题:
1.您没有从Promise处理程序返回任何内容,因此某些变量未定义。
1.(与#1相关)基本上没有理由嵌套
.then
1.正如collinD在评论中指出的那样,你在第二次调用时不会出现任何错误。
1.对于错误,您可能需要
console.error
,而不是console.log
。如果使用
async
/await
,整个事情看起来会更干净: