reactjs-popup icon indicating copy to clipboard operation
reactjs-popup copied to clipboard

React 18 Typescript error with function as child pattern

Open poohcom1 opened this issue 2 years ago • 1 comments

Version

v2.0.5

Issue

When using with React 18, typescript will throw an error when a function is passed as a child, specifically to use the close callback. Although this worked previously in React 17, this now throws an error. I believe this is due to the removal of implicit children as props.

image

Test Case

https://codesandbox.io/s/reactjs-popup-issue-template-forked-8cn80o?file=/src/index.tsx

Proposed Fix

A simple addition of the function type under

export interface PopupProps {
  ...
  children: React.ReactNode | ((close: () => void, isOpen: boolean) => React.ReactNode)
}

in types.d.ts seemed to do the trick for me.

As a quick fix, augmenting the module in a declaration file will do the trick if you set skipLibCheck to true, but I'm not sure what other side effects this could produce.

EDIT: The proposed fix seem to already exist in the source code, but it's commented out: image Is there a reason it's commented out?

poohcom1 avatar Apr 14 '22 07:04 poohcom1

Are there any updates on this? The error seems still exists

egor-sorokin avatar Nov 29 '22 11:11 egor-sorokin