【发布时间】:2019-12-14 00:32:03
【问题描述】:
我需要调用 2 个 API 来在我的组件上显示数据,但第二个 api 需要来自第一个 API 响应的标头。 我正在使用 React Hooks。我从第一个响应中更新了状态,以便稍后可以在第二次调用中使用它,但它未定义。我做错了什么?
P.s 一种更好的调用方式(可能使用 async/await)会很受欢迎
const [casesHeaderFields, setCasesHeaderFields] = useState([]);
const [casesFields, setCasesFields] = useState([]);
useEffect(() => {
const fetchData = () => {
const result1 = axios
.get(`firstUrl`)
.then(response => {
//I need this as headers for my second API
setCasesHeaderFields(
response.data.result.fields
);
});
const result2 = axios
.get(`url${casesHeaderFields} //here i want to pass params from
//first response)
.then(response => {
setCasesFields(response.data.result.record_set);
});
};
fetchData();
}, []);
【问题讨论】:
-
链接您的承诺或使用
async/await并阻止执行您的result2调用。P.s a better way of doing this calls (maybe using async/await) would be much appriciated是什么意思?async/ await很简单……
标签: javascript reactjs axios