Как отлаживать программы reflex-dom-

Поэтому я только что обнаружил эту библиотеку и подумал, что это может быть здорово для создания пользовательских интерфейсов. Вот небольшое упражнение, которое я пытался выполнить, изучая эту библиотеку. Обычно он пытается открыть каталог в локальной файловой системе и отображает все файлы в этом каталоге. Компилируется без проблем, но когда я открываю index.html это просто показывает пустую страницу. Я понятия не имею, как отладить программу. Вот код:

{-# LANGUAGE OverloadedStrings #-}
import           Reflex.Dom
import qualified Data.Text as T
import           System.Directory
import           System.FilePath
import           Control.Monad
import           Data.List (map)


main :: IO ()
main = do
  files <- getDirectoryContents "/"
  let names = map (T.pack . show) files
  mainWidget $ body  names

body :: MonadWidget t m => [T.Text] ->  m ()
body files = el "div" $ do
  el "h2" $ text "Reflex File Test"
  el "ul" $ do
    let lables = map text files
    mapM_ (el "li")  lables

1 ответ

Решение

Хорошим первым шагом в отладке проблем ghcjs является проверка консоли браузера. В этом случае вы увидите: "/: getDirectoryContents: failed (operation unsupported on this platform)",

Это имеет смысл. Код выполняется в браузере - не на сервере или непосредственно на клиенте. Таким образом, концепция файловой системы в целом здесь не применима.

Другие вопросы по тегам