ES6 - константа импорта, но при использовании выдается Uncaught ReferenceError - PullRequest
0 голосов
/ 21 февраля 2019

У меня в составе приложения js есть такой файл (имена которого изменены для защиты невинных):

export const noValue = '';

export default class ValueProcessor {
    ...
    getValue(valueId) {
    }
    ...
}

И еще один файл, который импортирует эти файлы:

import ValueProcessor, { noValue } from '../processor/value-processor'

class ValueSource {
    ...
    handleValue(valueId) {
        const loadedVal = this.getValue(valueId)

        if (noValue === loadedVal) {
            // signal that there is no value
        }
    }
}

В проверке, использующей noValue, выдается «ReferenceError: noValue не определено».Я использовал это в других проектах, и это работает, и это работает в других местах как для констант, так и для функций.Я не вижу никакой причины, почему это не работает здесь.Есть ли какие-то конкретные вещи, которые я должен искать?

Я видел ES6-модули: импортированные константы сначала не определены;они становятся доступными позже , и это не так.Файл value-processor.js ничего не импортирует, поэтому я нигде не вижу круговой ссылки.Кроме того, экспорт по умолчанию из value-processor.js работает нормально.

=== UPDATE ===

Я не смог найти способ собрать простой пример.На данный момент я использую обходной путь наличия статического геттера в экспортируемом классе.Этот метод получения возвращает const, который отказывается экспортировать.

1 Ответ

0 голосов
/ 21 февраля 2019

Проблема с export default class ValueProcessor.Если это класс ValueProcessor.Если только не сделать ValueProcessor константным, а затем экспортировать его.Вот пример рабочей копии https://codesandbox.io/s/370607wlm.

...