Я работаю над приложением React и для выполнения запросов API я использовал fetch()
, но по неизвестной причине fetch()
вызывает несколько запросов API, в то время как я ожидаю только один.
Вв текущем сценарии я получаю 3 запроса на вкладке «Сеть» моего браузера:
Код, отвечающий за то же:
componentDidMount() {
var planet_id = this.props.match.params.id;
let planetData = [];
apiFetch('planets', false, planet_id).then(function(jsonResponse) {
planetData = jsonResponse;
}).then(data => this.setState({
planet: planetData,
loading: false
}));
}
Определение для apiFetch ():
export function apiFetch(fetchParam, fullUrl = false, id = false) {
let fetchItem;
let apiUrl;
if (fullUrl) {
apiUrl = fetchParam;
} else {
switch (fetchParam) {
case 'people': {
fetchItem = Constants.apiPeople;
break;
}
case 'planets': {
fetchItem = Constants.apiPlanets;
break;
}
default: {
fetchItem = Constants.apiPlanets;
}
}
apiUrl = Constants.apiBaseUrl + fetchItem;
apiUrl += id ? ('/' + id) : '';
apiUrl += Constants.apiFormat;
}
return fetch(apiUrl, {
method: Constants.fetchMethod,
cache: Constants.apiNoCache
})
.then(response => response.json())
.catch(error => console.error('Error in API:', error));
}
Поток приложения в порядке, и кажется, что он работает, как ожидалось, но я не могу выяснить, что является причиной нескольких запросов API.