Pesquisa de site

reactjs - A propriedade 'onClick' não existe no tipo '{ children?: ReactNode; }'


Parece que não consigo encontrar o que estou fazendo de errado... Qualquer ajuda será apreciada:

type Props = {
  onClick: () => void, 
  value: string
}

const CustomInput = forwardRef<Props>(({ onClick, value }, ref) => (
  <div className="react-datepicker-custom-input" onClick={onClick}>
    {value}
    <i className={classes.arrowDown}></i>
  </div>
));


error message: Property 'onClick' does not exist on type '{ children?: ReactNode; }

exportar padrão CustomInput;

Resposta #1

O genérico Props deve ser usado como segundo argumento, não como o primeiro.

Exemplo :

type Props = {
  onClick: () => void, 
  value: string
}

type RefType=number
const CustomInput = forwardRef<RefType, Props>(({ onClick, value }, ref) => (
  <div className="react-datepicker-custom-input" onClick={onClick}>
    {value}
    <i className={classes.arrowDown}></i>
  </div>
));

O primeiro argumento genérico de forwardRef é para o tipo de ref, o segundo - para props, respectivamente

Resposta #2

Você pode digitar adicionando desta forma:

type Props = {
  onClick: () => void, 
  value: string
}

const CustomInput = forwardRef<Props>(({ onClick, value }:Props, ref:any) => (
  <div className="react-datepicker-custom-input" onClick={onClick}>
    {value}
    <i className={classes.arrowDown}></i>
  </div>
));