Cursos / Informática para Internet / Desenvolvimento para Dispositivos Móveis / Aula
Dando sequência ao conteúdo, criaremos um componente que gerencie o seu estado.
Até o momento, utilizamos funções para criar componentes react. No entanto, para gerenciar o estado é mais vantajoso utilizar o conceito de Class Component.
Então, acompanhando a aula e todos os detalhes da criação e das alterações, implemente o código abaixo:
import React from 'react';
import ReactDOM from 'react-dom';
class ClockClass extends React.Component {
constructor(props) {
super(props)
this.state = { date: new Date() }
}
componentDidMount() {
setInterval(() => {
this.setState({ date: new Date() });
}, 1000);
}
render() {
return (<div><h1>Hora: {this.state.date.toLocaleTimeString()} </h1></div>);
};
}
ReactDOM.render(
<ClockClass />,
document.getElementById('root')
);
Nosso componente está fazendo uma chamada a cada segundo para atualizar o estado. Porém, caso precise remover esse component da tela, é interessante limpar esse intervalo para não gastar recursos à toa.
O setInterval( ) retorna um id. Então, vamos armazenar esse id. Na função componentDidMount( ):
componentDidMount() {
this.timerId = setInterval(() => {
this.setState({ date: new Date() });
}, 1000);
}
Agora, para limpar o setInterval( ) , usaremos uma função que é executada quando o componente é desmontado: componentWillUnmount( ).
Então, abaixo da função componentDidMount( ) implemente o código a seguir:
componentWillUnmount() {
clearInterval(this.timerId)
}
Essa alteração não ocasionará mudanças visuais, mas o componente está gerenciando melhor os recursos.
Versão 5.3 - Todos os Direitos reservados