"index",
...rest
}) => {
if (viewType === "index") {
return <IndexSearchResults {...rest} />;
}
return <VideoSearchResults {...rest} />;
};
в том же файле IndexSearchResults и VideoSearchResults два компонента свич-кейс в которых у обоих очень похожий
const IndexSearchResults = ({
// пропсы
title,
}) => {
switch (status) {
case FetchStatus.LOADING: return (title ? (
<VideoInfoOnIndexPage
// пропсы
/>
) : <VideoLoader />);
// разные кейсы в зависимости от статуса ответа от сервера
и
const VideoSearchResults = ({
// пропсы
title,
}) => {
switch (status) {
case FetchStatus.LOADING: return (title ? (
<VideoInfoOnVideoPage
// некоторые пропсы
/>
) : <VideoLoader />);
// разные кейсы в зависимости от статуса ответа от сервера
мне нужно избавиться от дублирования этих свитч кейсов в VideoSearchResults и в IndexSearchResults и сделать один, тк они похожи.
чтобы знать что рендерить внутри этого общего свич-кейса ( либо VideoInfoOnIndexPage, либо VideoInfoOnVideoPage)
у меня только один вариант if (viewType === "index") перенести в тело этого свич-кейса и там определять VideoInfoOnIndexPage или
VideoInfoOnVideoPage рендерить?
А почему дублировать код? Стили разные на компонентах?
да
Обсуждают сегодня