Я следую этому руководству для мобильной навигационной панели shadcn ui, однако, когда я использую код в своем собственном проекте, я получаю эту ошибку:
Property 'open' does not exist on type 'IntrinsicAttributes & Omit<LucideProps, "ref"> & RefAttributes<SVGSVGElement>'.
Вот код, который я использовал:
// MobileNav.tsx
import { useState } from 'react';
import { Sheet, SheetContent, SheetTrigger } from '@/components/ui/sheet';
import { Button } from '@/components/ui/button';
import { Menu as MenuIcon } from 'lucide-react';
const mobileItems = ['A', 'B', 'C'];
export default function MobileNav() {
const [open, setOpen] = useState(false);
return (
<Sheet open = {open} onOpenChange = {setOpen}>
{/* This button will trigger open the mobile sheet menu */}
<SheetTrigger asChild>
<Button variant = "ghost" size = "icon" className = "md:hidden">
<MenuIcon />
</Button>
</SheetTrigger>
<SheetContent side = "left">
<div className = "flex flex-col items-start">
{mobileItems.map((item, index) => (
<Button
key = {index}
variant = "link"
onClick = {() => {
setOpen(false);
}}
>
{item}
</Button>
))}
</div>
</SheetContent>
</Sheet>
);
}
Я заметил, что в документации Shadcn нет компонента Sheet
, а ссылка на документацию Sheet ведет на компонент Dialog
, у которого есть свойство open
. Я не видел ничего об этой ошибке здесь или где-либо еще в Интернете. Что тут происходит?
Свойство «open» не существует для типа «IntrinsicAttributes & Omit<LucideProps, «ref»> и RefAttributes<SVGSVGElement>».
Обратите внимание, как в ошибке упоминаются LucideProps
и SVGSVGElement
?
Эта ошибка говорит о том, что Sheet
— это не то, что вы думаете.
Вы явно импортируете это:
import { Sheet } from 'lucide-react'
См. ту же ошибку на игровой площадке здесь
Когда вы хотели импортировать это:
import { Sheet } from '@/components/ui/sheet'
Сегодня пятница. Это случается с лучшими из нас :)
Спасибо, любезно. Я как-то упустил это при импорте компонентов.