1
resposta

Método join em negociacoes-view

No capítulo 1, seção "Unindo view e modelo", não entendi pq devemos usar o método join() para inserir os dados na tabela. Eu testei aqui sem o join, que é como eu faço em projetos de react e next, e deu certo também.

Alguém consegue me explicar o porquê disso?

1 resposta

Olá, Eduardo!

O método join é necessário para "transformar" os itens do array em strings, se o método não for invocado irá funcionar normalmente devido aos placeholders (expressões interpoladas com ${}) serem "convertidas" pela própria Template string.

Se os placeholders não forem uma string, então, serão convertidos em uma string pela JS Engine.

Tratando-se de um objeto seu método .toString() será invocado como no exemplo abaixo:

console.log(`${{ a: 1 }}`) // '[object Object]'

Tratando-se de um array teremos:

console.log(`${['Item 1', 'Item 2']}`) // 'Item 1,Item 2'

Repare na , entre os itens do array.

Este comportamento ocorre devido ao "separador" não ter sido informado, o mesmo ocorreria se tivéssemos utilizado o método join sem um separador, no caso do curso utilizamos "vazio" representado pela string '' sem nenhum conteúdo.

Em React é utilizado a sintaxe JSX para declaração da UI - em um mapping retornamos sempre um valor válido como children - logo é feito um tratamento interno na criação dos elementos, por isso não é necessário o uso explícito do join ou toString.

Segue alguns links úteis sobre o descrito acima:

Espero ter ajudado :)Bons estudos!