Свойство Shadcn ui «open» не существует для компонента Sheet

Я следую этому руководству для мобильной навигационной панели 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. Я не видел ничего об этой ошибке здесь или где-либо еще в Интернете. Что тут происходит?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
238
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Свойство «open» не существует для типа «IntrinsicAttributes & Omit<LucideProps, «ref»> и RefAttributes<SVGSVGElement>».

Обратите внимание, как в ошибке упоминаются LucideProps и SVGSVGElement?

Эта ошибка говорит о том, что Sheet — это не то, что вы думаете.


Вы явно импортируете это:

import { Sheet } from 'lucide-react'

См. ту же ошибку на игровой площадке здесь


Когда вы хотели импортировать это:

import { Sheet } from '@/components/ui/sheet'

Спасибо, любезно. Я как-то упустил это при импорте компонентов.

Jasperan 24.05.2024 20:38

Сегодня пятница. Это случается с лучшими из нас :)

Alex Wayne 24.05.2024 20:42

Другие вопросы по теме