React - Uma introdução bem básica - VII
Neste artigo vou apresentar uma introdução bem básica ao React. |
Renderizando classes dinamicamente
Atualmente o nosso contador esta sendo exibido na cor azul. (Veja o artigo anterior)
Vamos fazer o seguinte: quando o valor do contador for maior que 10 vamos alterar a cor para verde.
Assim o valor atual do estilo, usado para valores menores que 10, aplicado pelo bootstrap é : className="badge badge-primary m-2">
E quando o valor for maior que 10 teremos que ter o seguinte estilo : className="badge badge-success m-2">
Na verdade estamos alterando apenas um atributo: de primary para success.
Vamos ver como fazer isso de forma dinâmica dependendo do valor do contador.
Primeiro vamos definir uma variável string que vai receber o valor definido em className que não muda, e a seguir vamos verificar se o valor do contador for maior a 10 e neste caso incluir a string 'success' caso contrário vamos incluir a string 'primary'
Veja como fica o código:
let classes = "badge m-2 badge-";
classes += (this.state.contador
> 10 ? "success" :
"primary")
Nota: Aqui estamos usando o operador ternário (?) do javascript que usa a sintaxe: condition ? expr1 : expr2 (se condition for true retorna expr1, senão retorna expr2)
A seguir basta substituir o texto de className pela variável classes: <span style={this.estilos} className={classes}>
Abaixo o código completo:
import React, { Component } from "react";
class Contador extends Component {
state = { contador: 0 };
estilos = {
fontSize: 25,
fontWeight: "normal"
};
render() {
let classes = "badge m-2 badge-";
classes += (this.state.contador > 10 ? "success" : "primary")
return (
<React.Fragment>
<span style={this.estilos} className={classes}>
{this.formataContador()}
</span>
<button onClick={this.tratarIncremento} className="btn btn-secondary">
Incrementar
</button>
</React.Fragment>
);
}
formataContador() {
const { contador } = this.state;
return contador === 0 ? "Zero" : contador;
}
tratarIncremento = () => {
this.setState({ contador: this.state.contador + 1 });
};
}
export default Contador;
|
Abrindo o navegador veremos o resultado inicial e após incrementar o contador para valores que 10:
Podemos organizar melhor o nosso código e torná-lo mais robusto criando um método e a seguir chamando o método em className.
Vamos criar um método chamado GetBadgeClasses() e a seguir invocá-lo em className como mostrado abaixo:
Agora estamos alterando de forma dinâmica a aparência da nossa interface com base em um valor usando um método.
Na próxima aula veremos como renderizar listas no React.
"Porque o coração deste povo está
endurecido,E ouviram de mau grado com seus ouvidos,E fecharam seus olhos;Para
que não vejam com os olhos,E ouçam com os ouvidos,e compreendam com o coração,e
se convertam,e eu os cure."
Mateus 13:15
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET