Monday, 19 August 2019

Is it possible in React Typescript to use a component prop interface with another prop?

Basically, I want line injectComponentProps: object to be tied dynamically to whatever the injectComponent's prop interface is. In this case, it would be injectComponentProps: InjectedComponentProps, but I want it to be dynamic.

I.e Once prop injectComponent is set in , injectComponentProps is then defined to whatever injectComponent's components props are.

Is this possible?

interface InjectedComponentProps {
  variant: string
  size: number
}

const InjectedComponent: React.FC<InjectedComponentProps> = (props) => {
  return <Text {...props}>hello</Text>
}

interface ComponentProps {
  injectComponent: React.ReactType
  injectComponentProps: object
}

const Component: React.FC<ComponentProps> = (props) => {
  const InjectedComponent = props.injectComponent
  return (
    <>
      <InjectedComponent {...props.injectComponentProps}/>
    </>
  )
}


const Main: React.FC = () => {
  return (
    <Component
      injectComponent={InjectedComponent}
      injectComponentProps=
    />
  )
}



from Is it possible in React Typescript to use a component prop interface with another prop?

No comments:

Post a Comment