Size: a a a

Clojure — русскоговорящее сообщество

2019 September 02

AD

Artur Dumchev in Clojure — русскоговорящее сообщество
честно сказать, не понимаю, почему так в логах. 5 раз принтится, на 4 раз со значением, на 5-тый опять nil
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Окей, убери классы из принта и сделай два принта — один в component (prn ::component), второй в ach-dropdown (prn ::ach-dropdown done)
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Чисто чтобы увидеть рендеры
источник

AD

Artur Dumchev in Clojure — русскоговорящее сообщество
:plus-minus.game.achivement/component
:plus-minus.game.achivement/ach-dropdown nil
:plus-minus.game.achivement/ach-dropdown nil
:plus-minus.game.achivement/ach-dropdown nil
:plus-minus.game.achivement/ach-dropdown "Lucky Devil"
:plus-minus.game.achivement/ach-dropdown nil
источник

AD

Artur Dumchev in Clojure — русскоговорящее сообщество
а, понял, дропдаунов же 5)
источник

AD

Artur Dumchev in Clojure — русскоговорящее сообщество
ну это принтится только после сохранения файла, при перезагрузке страницы нет ничего
источник

AD

Artur Dumchev in Clojure — русскоговорящее сообщество
ладно, я так пока оставлю, со спаном и текстом вместо иконки, так работает
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Artur Dumchev
ну это принтится только после сохранения файла, при перезагрузке страницы нет ничего
Это странно.
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Точнее как, релоад там достаточно тупой — код меняется на новый да и всё.
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
А вот если у тебя компонент при перезагрузке ничего не писал, то у него не было причины рендериться?
источник

AD

Artur Dumchev in Clojure — русскоговорящее сообщество
в консоли пишет, я до этого только в репле смотрел
источник

AD

Artur Dumchev in Clojure — русскоговорящее сообщество
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
А Lucky Devil там с самого начала лежит?
источник

AD

Artur Dumchev in Clojure — русскоговорящее сообщество
он с сервера приходит
источник

AD

Artur Dumchev in Clojure — русскоговорящее сообщество
видишь, сперва 5 раз nil прописался, потом дошли данные и "Luck Devil" обновился.
По-моему, все работает как и должно, просто :i халтурит
источник

AD

Artur Dumchev in Clojure — русскоговорящее сообщество
(defn component [progress]
 (let[i (r/atom false)]
   (fn []
     [:div
      [:button {:on-click #(do
                        (prn ::component "clicked")
                        (swap! i not))}
       "button"]
      [:i {:class (if @i icon-done icon-hover)}]])))
источник

AD

Artur Dumchev in Clojure — русскоговорящее сообщество
вот так не работает тоже :i
источник

AD

Artur Dumchev in Clojure — русскоговорящее сообщество
и даже так
(defn component []
 (let[i (r/atom false)]
   (fn []
     (prn ::component ::rerender)
     [:div [:button {:on-click #(swap! i not)} "button"]
      (if @i
        [:i.far.fa-check-circle]
        [:i.fas.fa-angle-down])])))
источник

AD

Artur Dumchev in Clojure — русскоговорящее сообщество
по клику ререндерится, а иконка та же самая остается
источник

AS

Alex Shipilov in Clojure — русскоговорящее сообщество
Mikhail Gusarov
Math/pow возводит float в степень float и судя по (long ) вокруг там ещё и боксинг/анбоксинг на каждой итерации.
хех, посмотрел и правда, только там double в степень double…., нашел похожую проблему, но тайп хинты почему-то тоже не помогли)
https://mauricioszabo.wordpress.com/2017/07/24/clojure-reflection-and-performancememory-issues/
источник