Fiz as configurações descritas na aula, a primeira parte de "resetar" os campos foi um sucesso, o meu problema aconteceu ao inserir as novas props: completado, selecionado e id. Depois de fazer todos os procedimentos nenhum erro ou problema foi apresentado no console do VSCode, indo para o navegador e fazendo o processo de adicionar uma nova tarefa tudo parece normal, ao analisar o console a nova tarefa é apresentado com as 5 propriedades que a ele pertence só que nas props completado, selecionado e id mostra o valor undefined. Segue abaixo os meus trechos de código:
lista/item/index.jsx
import style from '../Lista.module.scss'
import {ITarefa} from '../../../types/tarefa'
export default function item({tarefa, tempo, selecionado, completado, id}: ITarefa) {
console.log("Item atual: ", {tarefa, tempo, selecionado, completado, id})
return (
<li className={style.item}>
<h3>{tarefa}</h3>
<span>{tempo}</span>
</li>
);
}
formulario/index.jsx
class Formulario extends React.Component<{
setTarefas: React.Dispatch<React.SetStateAction<ITarefa[]>>
}> {
state = {
tarefa: "",
tempo: "00:00",
};
adicionarTarefa(evento: React.FormEvent<HTMLFormElement>) {
evento.preventDefault();
this.props.setTarefas((tarefasAntigas) => [
...tarefasAntigas,
{
...this.state,
selecionado: false,
completado: false,
id: uuidv4npm(),
},
]);
this.setState({
tarefa: "",
tempo: "00:00",
});
//console.log('state: ', this.state);
}
type/tarefa.js
export interface ITarefa {
tarefa: string,
tempo: string,
selecionado: boolean,
completado: boolean,
id: string
}
pages/App.jsx
import React, { useState } from 'react';
import { Cronometro } from '../components/Cronometro';
import Formulario from '../components/Formulario';
import Lista from '../components/Lista';
import style from './App.module.scss';
import {ITarefa} from '../types/tarefa';
function App() {
const [tarefas, setTarefas] = useState ([]);
return (
<div className={style.AppStyle}>
<Formulario setTarefas= {setTarefas} />
<Lista tarefas= { tarefas } />
<Cronometro />
</div>
);
}
export default App;