From 93cf9be4861e26d505c2cf41550f1818b76b20b4 Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Wed, 27 Mar 2024 10:19:32 +0800 Subject: [PATCH 1/3] Add new option for generic forwardRefs --- docs/basic/getting-started/forward-create-ref.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/basic/getting-started/forward-create-ref.md b/docs/basic/getting-started/forward-create-ref.md index e7b5620b..d63dd5e1 100644 --- a/docs/basic/getting-started/forward-create-ref.md +++ b/docs/basic/getting-started/forward-create-ref.md @@ -129,6 +129,19 @@ function ClickableListInner( export const ClickableList = forwardRef(ClickableListInner); ``` +### Option 3 - Call signature + +```ts +// Add to `index.d.ts` +interface ForwardRefWithGenerics extends React.FC> { + (props: WithForwardRefProps): ReturnType>>; +} + +export const ClickableListWithForwardRef: ForwardRefWithGenerics = forwardRef(ClickableList); +``` + +Credits: https://stackoverflow.com/a/73795494 + ## More Info - https://medium.com/@martin_hotell/react-refs-with-typescript-a32d56c4d315 From 1ff65f4ceab7b46d2f1b895c67f8ae9f32172c25 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Wed, 27 Mar 2024 14:59:04 +0800 Subject: [PATCH 2/3] update README --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index d75255de..034e3a45 100644 --- a/README.md +++ b/README.md @@ -1730,6 +1730,22 @@ function ClickableListInner( export const ClickableList = forwardRef(ClickableListInner); ``` +##### Option 3 - Call signature + +```ts +// Add to `index.d.ts` +interface ForwardRefWithGenerics extends React.FC> { + (props: WithForwardRefProps): ReturnType< + React.FC> + >; +} + +export const ClickableListWithForwardRef: ForwardRefWithGenerics = + forwardRef(ClickableList); +``` + +Credits: https://stackoverflow.com/a/73795494 + #### More Info - https://medium.com/@martin_hotell/react-refs-with-typescript-a32d56c4d315 From d6554813e316f44c46a152b1f55efe800a9ef53c Mon Sep 17 00:00:00 2001 From: Yangshun Date: Wed, 27 Mar 2024 16:15:32 +0800 Subject: [PATCH 3/3] format --- docs/basic/getting-started/forward-create-ref.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/basic/getting-started/forward-create-ref.md b/docs/basic/getting-started/forward-create-ref.md index d63dd5e1..300fb5de 100644 --- a/docs/basic/getting-started/forward-create-ref.md +++ b/docs/basic/getting-started/forward-create-ref.md @@ -134,10 +134,13 @@ export const ClickableList = forwardRef(ClickableListInner); ```ts // Add to `index.d.ts` interface ForwardRefWithGenerics extends React.FC> { - (props: WithForwardRefProps): ReturnType>>; + (props: WithForwardRefProps): ReturnType< + React.FC> + >; } -export const ClickableListWithForwardRef: ForwardRefWithGenerics = forwardRef(ClickableList); +export const ClickableListWithForwardRef: ForwardRefWithGenerics = + forwardRef(ClickableList); ``` Credits: https://stackoverflow.com/a/73795494