Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

[name]

Olá!

o instrutor usou as seguintes notações do ES6 no exercício:

        const { name, value } = event.target;

        this.setState({
            [name]: value
        })

Testei e vi que sem os colchetes entre o name, não é atribuido o valor da variável name.

Parece que essa regra é chamada de "Nomes computados de propriedade de objeto e desestruturação" na documentação da mozila: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Operators/Atribuicao_via_desestruturacao

Logo, se eu quiser atribuir/reatribuir o valor de uma propriedade de um objeto, é necessário usar a sintaxe do colchetes envolvendo o nome da variável? É simples assim? Parece besta a pergunta, mas demorou pra cair a ficha, e quero ter certeza de que entendi mesmo?

3 respostas
solução

Fala ai Renato, tudo bem? Vamos lá:

Logo, se eu quiser atribuir/reatribuir o valor de uma propriedade de um objeto, é necessário usar a sintaxe do colchetes envolvendo o nome da variável?

O colchete em objetos é usado para criar propriedades à partir dos valores de variáveis, ou seja:

const propriedade = 'nome'
const obj = {
    [propriedade]: 'Matheus'
}

Nesse exemplo o obj terá uma propriedade chamada nome com o valor de Matheus. Se retirarmos os colchetes:

const propriedade = 'nome'
const obj = {
    propriedade: 'Matheus'
}

Seria criado um novo objeto com a propriedade propriedade possuindo o valor igual à 'Matheus`.

Resumindo: Com os colchetes conseguimos definir o nome das propriedades dinamicamente vindo dos valores de variáveis.

Espero ter ajudado.

Olá Matheus!

Obrigado! Era o que imaginei mesmo! Valeu!

Magina, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.