У меня проблема с вызовом API на iPhone 5.
У меня следующий вызов API внутри компонента
import FavouritesService from "../../api/FavouritesService";
const Favourites = () => {
const getFavs = () => {
favouritesService.getFavourites(0, 10, "FULL").then(response => {
if (response.success === false) {
//...
} else {
//...
}
});
};
};
export default Favourites;
Мой FavouritesService
, который получает конечную точку API и вызывает функцию внутри импорта, выглядит следующим образом.
import api from "./api";
class FavouriteService {
getFavourites(page, pageSize, view) {
return api.get(
"/api/social-groups?page=" +
encodeURIComponent(page) +
"&pageSize=" +
encodeURIComponent(pageSize) +
"&view=" +
encodeURIComponent(view) +
"&type=FAVOURITE"
);
}
}
export default FavouriteService;
Мой api.js
файл, в котором я сам выполняю API, выглядит следующим образом ...
import _ from "lodash";
import "babel-polyfill";
import "isomorphic-fetch";
function handleErrors(response) {
if (!response.ok) {
throw Error(response.statusText);
}
return response;
}
function handleFetchError(error) {
// Here is where I get TypeError: Type error
if (error) {
return { success: false, error: error };
}
}
function payloadOptions(method, body) {
var postBody = body;
var contentType = "application/x-www-form-urlencoded";
if (typeof postBody === "object") {
postBody = JSON.stringify(postBody);
contentType = "application/json";
}
return {
method: method,
body: postBody,
headers: {
"Content-Type": contentType
}
};
}
const defaultOptions = {
redirect: "error",
headers: {
Accept: "application/json"
}
};
class API {
request(url, options) {
return fetch(url, _.defaultsDeep(options || {}, defaultOptions))
.then(handleErrors)
.then(response => response.json())
.catch(handleFetchError);
}
get(url, options) {
return this.request(
url,
_.defaultsDeep(options || {}, payloadOptions("GET"))
);
}
}
export default new API();
Здесь ошибка возникает в handleFetchError
, error
возвращает TypeError: Type error
. Когда я console.log
это, это все, что я получаю, я не в состоянии углубиться в детали, чтобы на самом деле проверить, что на самом деле здесь произошло.
Я пытался зайти в Google, но, похоже, ни у кого больше нет этой конкретной проблемы, поэтому я предполагаю, что на каком-то этапе я ошибся при выполнении этого запроса GET.
Любая помощь будет принята с благодарностью, так как я застрял на ней некоторое время.