3

所以我刚刚发现了这个库,并认为它可能非常适合构建 UI。这是我在学习这个库时尝试实现的一个小练习。基本上它会尝试在本地文件系统上打开一个目录并显示该目录中的所有文件。它编译没有问题,但是当我打开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
4

1 回答 1

3

调试 ghcjs 问题的第一步是检查浏览器控制台。在这种情况下,您将看到:"/: getDirectoryContents: failed (operation unsupported on this platform)"

这是有道理的。代码在浏览器中运行——不是在服务器上,也不是直接在客户端上。所以整个文件系统的概念在这里并不适用。

于 2018-02-22T06:35:33.310 回答