刚开始使用redux并遇到一个我觉得很难处理的问题。
我有一个API调用(使用Axios)来获取一些数据
onFormSubmit(e){
e.preventDefault();
this.props.fetchTracks(this.state.term);
}
行动档案 -
export function fetchTracks(term){
var params = {
api_key: API_KEY,
};
const request = axios.get(URL, { params: params });
return {
type: FETCH_TRACKS,
payload: request
}
}
减速机 -
export default function (state = [] , action) {
switch(action.type) {
case FETCH_TRACKS:
return [action.payload.data, ...state];
}
return state;
}
目前,一切都很好,我按预期得到了数据。 从这一点开始,我想从我刚刚做过的API调用中获取一些数据,并使用这些数据对另一个URL进行另一个API调用。
我该怎么办?在当前操作中有另一个API调用吗?有另一个动作?
基本上,我应该如何使用相同的操作处理两个API调用?
答案 0 :(得分:3)
由于axios使用promises,你可以链接它们
return axios.get(...)
.then((response) => {
return axios.get(...); // using response.data
})
.then((response) => {
return {
type: FETCH_TRACKS,
payload: response.data;
};
});