Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] FIZ DIFERENTE, ALGUEM PODERIA COMENTAR POR GENTILEZA

Achei viável manter a "função" genérica e o Setter também genérico dentro de CampoTexto:

const CampoTexto = (props) => {
    
    const [valor, setValor] = useState(props.value)

    const    = (evento)=> {
        setValor(evento.target.value)
        console.log(valor)
    }

    return (
        <div className="campoTexto">
            <label>{props.label}</label>
            <input value={valor} type={props.tipo} onChange={aoDigitado} required={props.obrigatorio} placeholder={props.placeholder}/>
        </div>
    )

}

dessa forma na hora de declarar o componente basta definir o value:

<CampoTexto value="9999999" label="Telefone" placeholder="Digite seu telefone" />

Funcionou dessa forma. Alguém pode me dizer se está certo?

1 resposta
solução!

Olá, Shelton! Tudo ok contigo?

Aparentemente, você está utilizando corretamente o useState para criar um estado interno no componente CampoTexto. O valor do estado é definido como props.value e a função para atualizar o estado é chamada setValor.

Para que o valor do input seja atualizado corretamente, você precisa chamar a função setValor dentro da função aoDigitado, passando o valor do input como argumento. Por exemplo:

const aoDigitado = (evento) => {
    setValor(evento.target.value)
    console.log(valor)
}

Dessa forma, sempre que o usuário digitar algo no input, o estado valor será atualizado com o novo valor.

Além disso, lembre-se de que o console.log(valor) dentro da função aoDigitado pode não exibir o valor atualizado imediatamente após a chamada de setValor, pois o estado é atualizado de forma assíncrona. Se você precisa do valor atualizado, você pode utilizar o console.log(evento.target.value) dentro da função aoDigitado.

Mas no geral tudo deve funcionar.

Ah! Só uma sugestão caso deseje:

const [valor, setValor] = useState(props.value || ''); // Valor inicial vazio por padrão

Era isso.

Espero ter ajudado!

Caso precise eu estarei por aqui.

Abraços e bons estudos!