Для типа object : :empty не определен метод протокола

#clojure #clojurescript #reagent #re-frame

#clojure #clojurescript #реагент #перефразируйте

Вопрос:

Я пытаюсь исправить ошибку в интерфейсе Clojurescript с помощью Reagent и Re-frame . Иногда я нахожу сообщения об ошибках немного сложными для расшифровки, и я не могу взломать это.

Все, что я знаю, это то, что я получаю ошибку в конкретном представлении, подобном этому:

No protocol method IAssociative.-assoc defined for type object: :empty

Я собираюсь предположить, что я пытаюсь связать что-то с типом :empty . Какие данные будут иметь тип :empty ?

Я, по крайней мере, на правильном пути? Какие вещи могут вызвать подобное исключение?

Вот как выглядит моя трассировка стека:

введите описание изображения здесь

Комментарии:

1. Если у вас есть исключение, у вас также должна быть трассировка стека, которая затем приведет вас к коду, которым вы управляете (где это происходит). Затем отлаживать оттуда?

2. Обычно это то, что я бы сделал, но, похоже, я не могу воспроизвести ошибку, и моя служба отслеживания ошибок на самом деле не оставила мне ценной трассировки стека.

3. Вам будет легче найти вашу проблему, как только вы получите трассировку стека, которая относится к коду (например, используйте исходные карты)

4. Я предполагаю, что объект x типа :empty является местом назначения assoc .

5. Имена функций «NAa», «KAa», «Mc» и т. Д. Пахнут как «расширенные» оптимизации из Google Closure, необязательный этап компиляции ClojureScript. Иногда, когда вы не знаете, что происходит, это помогает изменить оптимизацию на «нет». Тогда проблема может исчезнуть (предполагая несовместимость с закрытием Google) или проблема может проясниться.