Я работаю над этим проектом в React JS, где я получаю данные из этого URL-адреса API для моей разработки интерфейса. .
Я сделал свои собственные хуки для извлечения данных в несколько файлов после эта средняя статья следующим образом:
useApiResult.js
import { useState, useEffect } from "react";
export const useApiResult = (request) => {
const [results, setResults] = useState(null);
const [error, setError] = useState(null);
useEffect(() => {
fetch(request)
.then(async (response) => {
if (response.ok) {
setResults(await response.json());
setError(null);
} else {
setError(await response.text())
}
})
.catch((err) => {
setError(err.message);
});
}, [request]);
return [results, error];
};
useImages.js
import { useMemo } from "react";
import { useApiResult } from "./useApiResult";
const BASE_URL = "http://api.vidyarajkumari.com";
const createUrl = (base, path) => `${base}${path}`;
const getImages = () => [
createUrl(BASE_URL, "/images/"),
{
method: "GET",
}
];
export const useImages = () => {
const request = useMemo(() => getImages(), []);
return useApiResult(request);
}
Компонент React: Images.js
import React from "react";
import { useImages } from "../../hooks/useImages";
export default function Images() {
const [images, error] = useImages();
//console.log(images);
//console.log(error);
return (
<>
<div className="row">
{
images.map((item, index) => {
<div key={index} className="col-md-4 animate-box">
...
// Rest of code goes here
}
}
</>
</>
)
}
Проблема в том, что я не могу получить данные в компоненте Images.js с помощью ловушки useImages. console.log
значения изображений возвращают null. Это меня уже некоторое время беспокоит, и я был бы очень признателен за решение этой проблемы. Что я здесь делаю не так и как я могу это обойти?
P.S. URL-адрес API активен; так что не стесняйтесь ссылаться на него. Спасибо за уделенное время.