Home > Blockchain >  is not assignable to parameter of type [React]
is not assignable to parameter of type [React]

Time:10-28

I have problem in react I wrote enum type

enum.ts

export enum DivingType {
  FreeDiving = "FreeDiving",
  ScubaDiving = "ScubaDiving",
}

and my home screen has graphql hooks

home.tsx

import { DivingType } from "..."

export const Home = () => {
  const [divingType, setDivingType] = useState<DivingType>(DivingType.FreeDiving)
  const [pageNumber, setPageNumber] = useState(1)

  useMatchingList(divingType, pageNumber)
  
  // --------------------[ Return ]--------------------
  return ...

useMatchingList.tsx

interface IUseMatchingListProps {
  divingType: DivingType
  pageNumber: number
}
export const useMatchingList: React.FC<IUseMatchingListProps> = ({
  divingType,
 ,
}) => {...}

and I have

Argument of type 'import("...").DivingType' is not assignable to parameter of type 'PropsWithChildren<IUseMatchingListProps>'

useMatchingList(divingType, pageNumber)
       |            ^

what is the matter ? please help me !

CodePudding user response:

The FC in React.FC means "Functional Component". And a hook is not a component. A custom hook is just a function that calls other hooks. So it takes arguments just like any function would.

That means your hooks should look more like this:

export const useMatchingList = (divingType: DivingType, pageNumber: number) => {
  // my hook implementation
}

Working typesafe example

  • Related