Я использую response-admin . Мой проект работает на TypeScript .
Я пытаюсь создать пользовательское меню, обновив макет следующим образом:
const AppLayout = (props: JSX.IntrinsicAttributes) => (
<Layout
{...props}
appBar={AppBar}
sidebar={Sidebar}
menu={Menu}
notification={Notification}
/>
);
К сожалению, у меня есть ошибки TypeScript в моей реализации пользовательского меню. У меня «Объект неизвестного типа» Ошибка в строке {resources.map((resource) => (
:
import { Theme, useMediaQuery } from "@material-ui/core";
import LabelIcon from "@material-ui/icons/Label";
import DefaultIcon from "@material-ui/icons/ViewList";
import React, { FC } from "react";
import { getResources, MenuItemLink } from "react-admin";
import { useSelector } from "react-redux";
import { AppState } from "../../../consts/types";
interface Props {
logout: () => void;
onMenuClick: () => void;
}
const Menu: FC<Props> = ({ onMenuClick, logout }) => {
const isXSmall = useMediaQuery((theme: Theme) =>
theme.breakpoints.down("xs")
);
const open = useSelector((state: AppState) => state.admin.ui.sidebarOpen);
const resources = useSelector(getResources);
return (
<div>
{resources.map((resource) => (
<MenuItemLink
key={resource.name}
to={`/${resource.name}`}
primaryText={
(resource.options && resource.options.label) || resource.name
}
leftIcon={resource.icon ? <resource.icon /> : <DefaultIcon />}
onClick={onMenuClick}
sidebarIsOpen={open}
/>
))}
<MenuItemLink
to="/custom-route"
primaryText="Miscellaneous"
leftIcon={<LabelIcon />}
onClick={onMenuClick}
sidebarIsOpen={open}
/>
{isXSmall && logout}
</div>
);
};
export default Menu;