Я ищу отзывы об этом клиентском крючке React. Я задаюсь вопросом:
- Похоже ли это на правильное использование кастомных хуков React?
- Есть ли лучший способ переключаться между разными конечными точками API на основе переданной опоры? Я хочу сделать что-то вроде:
<MovieGrid typeOfMovies={"popular"} />
and
<MovieGrid typeOfMovies={"upcoming"} />
- Есть ли у вас какие-либо отзывы или рекомендации по поводу того, что вы видите? Спасибо!
Приведенный мной код действительно работает. Но поскольку крючки относительно новые, я не уверен, что использую их правильно.
Вот что у меня есть:
import React, { useState, useEffect } from "react";
function useFetchMovies(typeOfMovies) {
const [movieData, setMovieData] = useState([]);
const movieEndpointURL = () => {
if (typeOfMovies === "upcoming") {
return `https://api.themoviedb.org/3/movie/upcoming?api_key={API_KEY}&language=en-US&page=1®ion=US`;
} else if (typeOfMovies === "popular") {
return `https://api.themoviedb.org/3/movie/popular?api_key={API_KEY}&language=en-US&page=1®ion=US`;
}
};
const fetchMovieData = async () => {
try {
const res = await fetch(movieEndpointURL());
const movies = await res.json();
setMovieData(movies.results);
console.log(movies.results);
} catch (err) {
console.log(err);
}
};
useEffect(() => {
fetchMovieData();
}, []);
return [movieData, setMovieData];
}
export { useFetchMovies };
fetchMovieData
приtypeOfMovies
изменении? Мне кажется, что текущее использование useEffect будет извлекаться после первого рендеринга (например, старыйcomponentDidMount
), а не при изменениях свойств позже. - person Jokester   schedule 29.03.2019