2017-01-13 3 views
0

В моем галогенном проекте есть эта Eval ветвь:Можно ли визуализировать компонент во время eval в галогене?

eval (SetTest tName next) = do 
     H.set (State Nothing) 
     detail <- H.fromAff $ toAff settings $ getTestsByTestname (tName ^. unTestName) 
     H.set (State (Just detail)) 
     pure next 

Тоафф немного, если с делать AJAX и может занять некоторое время, чтобы вернуться. В моей визуализации функции у меня есть

, case ts of 
       Nothing -> 
       HH.div [class_ BS.centerBlock] 
        [HH.i [classes (HH.className <$> ["fa", "fa-spinner", "fa-spin", "loading"])] 
        [] 
        ] 

       Just td -> 
       HH.h3_ [HH.text $ td ^. tdName<<<unTestName] 

Я наивно ожидал увидеть загрузочный кок, когда до моего возвращения утвердительных действий, но это выглядит как Eval проходит весь путь через до HTML визуализации. Это верно?

редактировать

Оказывается, это была ошибка пользователя - я звонил мой запрос в неправильном порядке. Будущее mes: настройка состояния действительно обновляет ui :-)

ответ

1

Нет, изменяя состояние во время eval, должно действительно запускать рендер. Если ваш Aff на самом деле не асинхронный, я не уверен, почему вы не увидите, что вы ожидаете отсюда.

Вы пробовали сделать что-то вроде H.fromAff $ later' 5000 $ pure <some value>? Где later' исходит от Control.Monad.Aff и <some value> что-то подходит для detail. Вы должны увидеть загрузочный счетчик в течение 5 секунд, а затем до разрешения <some value>.

Смежные вопросы