複数のコンポーネントに対し、ホバーしたときに共通の処理を行う必要があり、以下のように実装しました。
しかし、Heading01のようにReact.FC型を指定した関数コンポーネントについては、TypeScriptのエラーが発生してしまいます。
tsx
1const Heading01: React.FC = ({ children }, ref: any) => ( 2 <h1 ref={ref}>{children}</h1> 3) 4const FowardedHeading01 = React.forwardRef(Heading01) 5// -> 'FC<{}>' の引数を型 'ForwardRefRenderFunction<unknown, {}>' のパラメーターに割り当てることはできません。 6 7const Heading02 = ({ children }: { children: React.ReactNode }, ref: any) => ( 8 <h1 ref={ref}>{children}</h1> 9) 10const FowardedHeading02 = React.forwardRef(Heading02) 11// -> OK
こちらの解決方法をご存知の方がいらっしゃいましたら、ご教授いただけると幸いです。
どうしようもない場合はrefをpropsとして渡すことで解決しようとは思いますが、
可能な限りforwardRefを用いて対応できればと考えております。
各パッケージのバージョン
react: "^16.12.0" react-dom: "^16.12.0" typescript: "^3.9.2" @types/react: "^16.9.35" @types/react-dom: "^16.9.8"
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/27 01:35 編集