@JavaSscriptNoob

Как сделать множество вариаций данных массива для компонента ( tsx )?

Всем привет , такая ситуация : У меня есть компонент DefaultItemsLayout , я хочу что бы он принимал пропс , этот пропс должнен быть массивом состоящим из обьектов , дело в том что у меня есть три вида разных обьектов , тобеж я могу передать в пропс один из трёх массивов в которых будут обьекты разных типов что то типо такого
<DefaultItemsLayout items={arrayWithObjects1} /> или <DefaultItemsLayout items={arrayWithObjects2} /> или <DefaultItemsLayout items={arrayWithObjects3} />
, как мне сделать так что бы тс понимал какой сейчас исп. обьект что бы я имел возможность достучаться к полям обьекта ( что бы тс понимал какой сейчас передаётся обьект и понимал какие у него есть поля ) ?
Код компонента :
import DefaultCardLayot from "../DefaultCardLayout/DefaultCardLayout";
import { IReminds } from "../../../models/IReminds";
interface IDefaultItemsLayout { // тут можно добавить <T> как я полагаю
  items: Array<any>; 
}
export default function DefaultItemsLayout(props: IDefaultItemsLayout) {
  const { items } = props; // items - массив из обьектов ( обьекты могут быть разными ) 
  return (
    <Box>
      {items.map((item) => {
        return (
          <>
            <div>{item.title}</div> // item должен понимать какие у него есть поля 
            <DefaultCardLayot />
          </>
        );
      })}
    </Box>
  );
}

Спасибо !
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
Seasle
@Seasle Куратор тега React
interface IDefaultItemsLayout<T> {
  items: T[];
}

export default function DefaultItemsLayout<T>(
    props: React.PropsWithChildren<IDefaultItemsLayout<T>>
) { ... }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы