Не получается отправить полученные данные из useState в функцию prepare() - для предподготовки данных для парсинга
const PageDetailMovie = () => {
const {id} = useParams<ID>();
const [film, setFilm] = useState<IShow | []>([]);
useEffect(() => {
getFilmsOnce(id).then(response => {
setFilm(response.data)
})
}, [id]);
console.log(film);
const { routeId, nameFilm, yearFilm, countryFilm, genresFilm, imageFilm} = prepareData(film);
return (
)
};
** постоянно ошибка при диструктуризации const film: IShow | [] Аргумент типа "IShow | []" нельзя назначить параметру типа "IShow". Тип "[]" не может быть назначен для типа "IShow".ts(2345)**
import { IShow } from "types/API_Films/Interface/IShow";
const prepareData = (data: IShow) => {
const apiPrepare = {
routeId: data.id.toString(),
nameFilm: data.name ? data.name.toUpperCase() : "информация отсутствует",
yearFilm: data.premiered ? data.premiered.slice(0,4) : " - ",
countryFilm: data.network?.country.name ? "("+ data.network.country.name +")" : " - ",
genresFilm: data.genres.join(" "),
summaryFilm: data.summary ? data.summary.replace(/<[^>]+>/g, '') : " - ",
ratingFilm: data.rating.average ? data.rating.average.toString() + "/10" : "Рейтинг отстутствует",
imageFilm: data.image?.medium ? data.image?.medium : data.name,
}
return apiPrepare;
}
export default prepareData;
import {IImage} from "./IImage";
import { IRating } from "./IRating";
import { INetwork } from "./INetwork";
export interface IShow {
id: number | string;
name: string | undefined;
genres: string[];
premiered: string | null;
rating: IRating;
image: IImage | null;
summary: string | null;
network: INetwork | null;
};