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

useState não esta renderizando componente após POST

Após usar o setState o componente deveria renderizar novamente correto?

Com o código abaixo isso não acontece.

export default function Form() {
    const [names, setNames] = useState<IName[]>([]);
    const [name, setName] = useState<string>('');

    function storeStock(e: React.FormEvent<HTMLFormElement>): void {
        e.preventDefault();
        axios.post('url', {
            name: name,
            info1: 'default',
            info2: 'default'
        })
            .then((res) => {
                setNames([...names, res.data]);
                alert('Cadastrado.');
            });

    }

    return (
        <main>
            {names.map(n => (
                    <Name
                        key={n.id}
                        {...n}
                    />
                ))}
            <form onSubmit={(e) => storeStock(e)}>
                <input type="text" onChange={e => setName(e.target.value)} />
                <button type='submit'>Cadastrar</button>
            </form>
        </main>
    );
}
1 resposta
solução!

Olá boa tarde Guilherme,

Sobre o seu problema eu vi que você está usando o axios para fazer uma requisição para "url", se axios no momento da chamada não conseguir encontrar a url ele não vai cair no seu ".then" mas sim no ".catch".

Acredito que o seu código ele não está caindo no ".then" sendo assim ele não está fazendo o setState, faça esse teste crie um ".catch" e coloque um setState nele para ver.

Espero que essa dica possa te ajudar!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software