{MenuItems.map((item) => Object.entries(item).map(([headers, headersItems]) => (
<div className={s.wrapperSections}>
<img src={tile} alt={Object.entries(headersItems)[0][0]} />
<span>{headers}</span>
</div>
))}
useState<T | null>(null)
, т.к. в таком случае можно легко проверить значение в условном рендеринге. А если Вы объявите в вашем компоненте нечто вроде React.FC<{ data: T }>
, то Object
(точнее ничего, кроме T
честным путём) не сможете внутрь прокинуть.interface IWrapper<T> {
component: T;
}
const Wrapper = <T extends React.ComponentType<any>>({
component: Component,
...props
}: React.PropsWithChildren<IWrapper<T> & React.ComponentProps<T>>) => <Component {...props} />;
interface IDefaultItemsLayout<T> {
items: T[];
}
export default function DefaultItemsLayout<T>(
props: React.PropsWithChildren<IDefaultItemsLayout<T>>
) { ... }
main.js
или main.ts
импортируете его:import '@fontsource/source-sans-pro';
import '@fontsource/source-sans-pro/cyrillic.css';
<NavLink className={({ isActive }) => isActive ? "link link--active" : "link"} to="/..." end>Ссылка</NavLink>