Расширение реагирования Clojurescript не работает с Firefox, работает с хромом, как отлаживать дальше? - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь создать расширение для браузера, используя clojurescript и re-agent (обертка вокруг реакции).Код очень прост (здесь завершены шаги с исходным кодом и репро) , в основном скопированный с примера агента:

(ns clext2.core
  (:require [reagent.core :as r]))

(defn timer-component []
  (let [seconds-elapsed (r/atom 0)]
    (fn []
      (js/setTimeout #(do (println "timeout") (swap! seconds-elapsed inc)) 1000)
      [:div "Seconds Elapsed: " @seconds-elapsed])))

(let [app (js/document.createElement "div")
      _ (js/document.body.appendChild app)]
   (r/render [timer-component] app))

Я скомпилировал это с флагом оптимизации :simple, скопировалсгенерированный js в пример кода, опубликованного Mozilla: https://github.com/cljsjs/packages/wiki/Creating-Packages, и загруженного расширения для Chromium и Firefox.

Наблюдения

При локальном тестировании с figwheel счетчик отображает ви хром, и firefox.

Когда я перехожу на реальную страницу (без использования figwheel):

  • В Firefox счетчик загружается, но не увеличивается (timeout печатается один раз)
  • С хромом счетчик загружается и увеличивается (timeout печатается каждую секунду)

Ожидаемое поведение

Я ожидаю, что счетчик будет заметно увеличиватьсяс Firefox и не работает.

Версии браузера

  • Chromium (71.0.3578.98 (Официальная сборка) Manjaro Linux (64-bit))
  • Firefox (64.0для Манджаро).

My question

Я не уверен, как отладить это дальше, что я могу попробовать дальше?

1 Ответ

0 голосов
/ 29 декабря 2018

Вы связываете вид (визуальный аспект) с событиями (таймер).Вы должны держать тогда отдельно.Пожалуйста, смотрите документацию по электронной рамке r .

...