Adicionando um formulário ao Redux

Na lição anterior, aprendemos que para campos de entrada de formulário podemos usar estados, que funcionarão apenas dentro de um componente, e criamos um formulário vazio.

Vamos colocar dentro das tags form a marcação para cada campo, onde as informações serão inseridas. A primeira entrada será responsável pelo nome do produto e sua marcação será assim:

products/NewProductForm.jsx<form>
  <p>
    <label htmlFor="productName">Nome:</label>
    <input
      id="productName"
      name="productName"
      value={name}
      onChange={onNameChanged}
    />
  </p>
</form>

O segundo será um textarea para a descrição do produto:

products/NewProductForm.jsx<p>
  <label htmlFor="productDesc">Descrição:</label>
  <textarea
    id="productDesc"
    name="productDesc"
    value={desc}
    onChange={onDescChanged}
  />
</p>

Escreva você mesmo o código para as duas entradas restantes para preço e quantidade com os IDs productPrice e productAmount respectivamente.

Após todos os quatro campos de entrada, antes da tag de fechamento form, adicione um botão para salvar:

products/NewProductForm.jsx<button type="button">salvar</button>

Nosso componente de formulário está pronto. Vamos exibi-lo na página principal. Para fazer isso, abra o arquivo root.jsx, importe o componente para ele:

app/root.jsximport { NewProductForm } from '../parts/products/NewProductForm'

E insira-o entre a tag hr e o componente ProductsList assim:

app/root.jsx<hr></hr>
<NewProductForm />
<ProductsList />

Vamos iniciar nosso aplicativo e admirar o formulário e a lista de produtos. Vamos adicionar alguns estilos em index.css:

index.css#main-page {
  max-width: 600px;
}

select,
textarea,
input,
button {
  font-size: 18px;
}

form {
  margin-bottom: 20px;
  border-bottom: 2px solid lightgray;
  padding-bottom: 10px;
}

form p {
  margin: 5px;
}
Задание 1

Abra seu aplicativo de estudantes. Faça a marcação para o seu formulário, como mostrado na lição.

Задание 2

Adicione o componente finalizado NewStudentForm na página principal antes de StudentsList