日曜日, 5月 11, 2025
No menu items!
ホームニューステックニュースchakra ui v2 コンポーネント化する際にカスタム以外のpropsも渡せるようにするには? #React

chakra ui v2 コンポーネント化する際にカスタム以外のpropsも渡せるようにするには? #React



chakra ui v2 コンポーネント化する際にカスタム以外のpropsも渡せるようにするには? #React

chakra ui v2の ButtonSaveButtonとしてコンポーネント化する際に、Button 自体のpropsもコンポーネント呼び出し先から指定できるようにしたかったので方法を調べた結果を共有します。

  • Button のprops型である ButtonProps をカスタムの型と&する
  • propsの分割代入先に ...rest としてカスタムのprops以外をまとめて受け取れるようにする

SaveButton.tsx

/* eslint-disable @typescript-eslint/no-explicit-any */
import { Button, ButtonProps } from "@chakra-ui/react";
import React, { FC } from "react";

type Props = {
  text: string;
  onClick: () => void;
  iconType?:
    | React.ReactElementunknown, string | React.JSXElementConstructorany>>
    | undefined;
};
export const SaveButton: FCProps & ButtonProps> = (props) => {
  const { text, onClick, iconType, ...rest } = props;
  return (
    Button colorScheme="blue" rightIcon={iconType} onClick={onClick} {...rest}>
      {text}
    Button>
  );
};


Button の元々のpropsである type="submit" を指定できるようになりました!

SaveButton text="登録" onClick={onClickSaveTodo} type="submit" />

その他のpropsも、もちろん指定できます。

今までは、元々のprops指定できなくない!?と思ってたけど、これで気兼ねなくコンポーネント化できる。



フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -

Most Popular