1
resposta

react não reconhece a props children

Olá, estou com o erro, Property 'children' does not exist on type 'Readonly<{}>', no index.tsx do component Botao.

import style from './Botao.module.scss'
import React from 'react';


class Botao extends React.Component {
  render() {
    return (
      <button className={style.botao}>
        {this.props.children}
      </button>
    )
  }
}

export default Botao;

Suspeito que deve ser versão do react ou alguma dependência do typescript. Vi que várias pessoas, há algum tempo, se depararam com o mesmo problema.

Resolvi o problema tipando as props, como typescript pede, mas o código do professor Luiz rodou sem esta tipagem.

import style from './Botao.module.scss'
import React from 'react';

interface props {
  children: string
  type?: 'button' | 'submit' | 'reset' | undefined
}

class Botao extends React.Component<props> {
  render() {
    const { type= 'button' } = this.props
    return (
      <button type={type} className={style.botao}>
        {this.props.children}
      </button>
    )
  }
}

export default Botao;

Alguém pode me explicar o motivo do erro?

1 resposta

Bom dia !

Acredito que seja relacionado mesmo a versão, pois chequei em alguns outros fórums, me pediram pra testar e do modelo a seguir foi possível utilizar o props

import React from 'react';
import style from './Botao.module.scss';

class Botao extends React.Component<{children:string; type?: "button" | "submit" | "reset" | undefined}> {
  render()
   {
    const {type ="button"}= this.props;
    return (
      <button type={type} className={style.botao}>
          {this.props.children}
      </button>
    )
  }
}

export default Botao;