1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita100万記事感謝祭!記事投稿キャンペーン開催のお知らせ

Chakra UI を使おうとしたら「プロパティ 'value' は型 '{ children: Element[]; }' にありませんが、型 'ChakraProviderProps' では必須です。」と言われた件について

Posted at

はじめに

業務でReactを初めて扱うことになったので、JISOの方のハンズオン動画を参考にキャッチアップをすることにしました

動画は以下
https://www.youtube.com/watch?v=_S--bTdPezU

その中でChakra UIを利用するステップがあったのですが、動画の手順ではうまく行かなかったので記事にしてみました

開発環境

カテゴリ ソフトウェア名 バージョン
OS Windows 11
プログラミング言語 TypeScript 5.6.3
ライブラリ react 18.3.1
ライブラリ chakra-ui\react 3.3.1
ビルドツール vite 6.0.7

問題

動画の開始からちょうど25分たった際に、Chakra UIを利用するためのコンポーネントであるChakraProviderを追加していました。実際のコードが以下になります。

App.tsx
import { ChakraProvider } from "@chakra-ui/react"
import { Title } from "./Title"

function App() {
  return (
    <ChakraProvider>
      <div>
        <Title />
        <Title />
        <Title />
      </div>
    </ ChakraProvider>
  )
}

export default App

この時、表題にも記載した内容をVSCodeから警告されました

プロパティ 'value' は型 '{ children: Element; }' にありませんが、型 'ChakraProviderProps' では必須です。
provider.d.ts(4, 5): 'value' はここで宣言されています。

image.png

原因

Chakra UI V3が2024年10月にリリースされたらしく、そのアップデートに伴いChakraProviderの扱いが変わったようです。

実際にChakraProviderの参照元を見てみると、引数としてChakraProviderProps型のパラメータを必要としていることがわかります。

node_modules@chakra-ui\react\dist\types\styled-system\provider.d.ts
import type { SystemContext } from "./types";
declare const useChakraContext: () => SystemContext;
export interface ChakraProviderProps {
    value: SystemContext;
    children: React.ReactNode;
}
declare function ChakraProvider(props: ChakraProviderProps): import("react/jsx-runtime").JSX.Element;
export { ChakraProvider, useChakraContext };

解決

value値にChakra UI側が提供しているdefaultSystemを渡してあげればいいようです。
defaultという名前なのだから、省略させてほしいですね。。。

App.tsx
import { ChakraProvider ,defaultSystem } from "@chakra-ui/react"
import { Title } from "./Title"

function App() {
  return (
    <ChakraProvider value={defaultSystem} >
      <div>
        <Title />
        <Title />
        <Title />
      </div>
    </ChakraProvider>
  )
}

export default App

参考

  • 同一事象の記事

  • defaultSystemについての記載

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?