Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

'useState' is not defined

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

formulario index.js

import CampoTexto from '../CampoTexto'
import './Formulario.css'
import ListaSuspensa from '../ListaSuspensa'
import Botao from '../Botao'
import { useState } from 'react'

const Formulario = () => {

    const times = ['programação', 'front-end', 'inovação e gestão', 'mobile']

    const [nome, setNome] = useState('')
    const [cargo, setCargo] = useState('')
    const [imagem, setImagem] = useState('')

    const aoSalvar = (evento) => {
        evento.preventDefault()//o comportamento padrão seria após o botão submit a página ser recarregada, com o preventDefault não permite
        console.log('Form foi submetido =>', nome, cargo, imagem)
    }

    return (
        <section className="formulario">
            <form onSubmit={aoSalvar}>
                <h2>Preencha seus dados para criar o card do colaborador.</h2>
                <CampoTexto
                    obrigatorio={true}
                    label="Nome"
                    placeholder="Digite seu Nome"
                    valor={nome}
                    alterado={valor => setNome(valor)}
                />
                <CampoTexto
                    obrigatorio={true}
                    label="Cargo"
                    placeholder="Digite seu Cargo"
                    valor={cargo}
                    alterado={valor => setCargo(valor)}
                />
                <CampoTexto
                    label="Imagem"
                    placeholder="Digite o endereço da sua Imagem"
                    valor={imagem}
                    alterado={valor => setImagem(valor)}
                />
                <ListaSuspensa obrigatorio={true} label="Time" itens={times} />
                <Botao> Criar um Card </Botao>
            </form>
        </section>
    )
}

//a constante obrigatoria é referenciada no index.js do Campo texto e da listaSuspensa

export default Formulario

CampoTexto index.js

import { useState } from 'react'
import './CampoTexto.css'

//props é uma variável 
const CampoTexto = (props) => {
    //console.log(props.label)

    //é uma crase `` e não aspas
    const placeholderModificada = `${props.placeholder}...`

    //let valor = 'herlon'//variável

    const aoDigitar = (evento) => {
        props.alterado(evento.target.value)
        //console.log(valor)
    }

    return (
        <div className="campo-texto">
            <label>{props.label}</label>
            <input value={props.valor} onChange={aoDigitar} required={props.obrigatorio} placeholder={placeholderModificada}></input>
        </div>
    )
}

export default CampoTexto
2 respostas
solução!

já resolvi, faltava o props na const Formulario = () => {

O meu deu um erro parecido...

ERROR in [eslint] src\componentes\Formulario\index.js Line 20:26: 'useState' is not defined no-undef Line 21:28: 'useState' is not defined no-undef Line 22:30: 'useState' is not defined no-undef

Havia esquecido de importar o useState no componente Formulário, quando importei (import { useState } from 'react') voltou a funcionar.