Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

ReferenceError ao exportar uma variável (ES6)

no arquivo principal "App.js", exporto a const "gameSets" para o arquivo no caminho "data/tokenGenerator.js". Mas, ao rodar a aplicação acontece esse seguinte erro:

ReferenceError: Cannot access 'gameSets' before initialization
    at Object.enemyDificult (file:///C:/Users/Usuario/Documents/js-rpg/data/tokenGenerator.js:52:17)
    at Object.enemyGenerator (file:///C:/Users/Usuario/Documents/js-rpg/data/tokenGenerator.js:75:27)
    at file:///C:/Users/Usuario/Documents/js-rpg/data/tokenGenerator.js:80:24

o App.js:

import {  enemiesSet, jogador, TokenGenerator } from "./data/tokenGenerator.js";

const gameSets = {
    velocidade: () =>  {return Math.round(Math.random() * 10)},
}

export { gameSets }

O tokenGenerator (caminho: ./data/tokenGenerator.js):

import { gameSets } from '../App.js'

class TokenGenerator {
    constructor(nome, hp, armadura, velocidade, nivel) {
        this.nome = nome;
        this.hp = hp
        this.armadura = armadura;
        this.velocidade = velocidade;
        this.nivel = nivel;
    }
}



const jogador = new TokenGenerator('Thiago', 15, 3, Math.round(Math.random() * 10), 1)

const enemiesSet = {
    // cria um objeto com as informações do inimigo
    enemyDificult(dificult) {
        if(dificult == 'easy') {
            return new TokenGenerator(
                undefined, 
                jogador.hp - 5, 
                jogador.armadura - 3, 
                gameSets.velocidade, 
                null)
        }
}

O que pode estar acontecendo para que o gameSets não esteja sendo acessado?

2 respostas

Oi Thiago, tudo bem?

Rodei o seu código aqui e me parece normal!

Tive que tirar o import do App.js pois nada estava sendo exportado do arquivo tokenGenerator.js, mas quando eu dei um console.log() na parte que usa o gameSets, me retornou normalmente, veja:

console.log(enemiesSet.enemyDificult('easy').velocidade()) // Me retornou o valor 4 (um valor randômico)

Sendo assim, pode me explicar melhor quando que acontece esse erro?

Fico no aguardo, abraços!

solução!

oi, Giovana.

ja consegui arrumar meu erro. pelo que entendi tava acontecendo pela forma que eu estava importando e exportando as variáveis, fazendo com que os 2 arquivos dependecem um do outro e nenhum dos dois conseguiam dar continuidade do código. Para quem estiver interessado, pode ver uma explicação meu destalhada desse problema por aqui: https://pt.stackoverflow.com/questions/527338/referenceerror-ao-exportar-uma-vari%c3%a1vel/527379#527379