Brick 不导出下一步或继续(Haskell)

问题描述 投票:0回答:1

我正在尝试使用 Haskell 和 Brick 包为基本应用程序构建一个 cli 界面。在我看到的所有示例中(包括文档),handleEvent 函数具有以下类型签名,以便告诉 Brick 在状态更新后继续或停止执行:

AppState -> BrickEvent n e -> EventM n (Next AppState)

但是,对我来说,我的编译器说找不到

Next
(我也不能从它应该在(Brick.Main)中的包中手动导出它)。下面使用的
continue
函数也是如此。

最小可重现问题:

Main.hs:

module Main where

import Brick.Main
import Brick.Types
import Graphics.Vty.Input.Events

main :: IO ()
main = do
    putStrLn "Hello, World!"

data AppState = AppState deriving (Show, Eq)

handleEvent :: AppState -> BrickEvent n e -> EventM n (Next AppState)
handleEvent s e =
    case e of
        VtyEvent vtye ->
            case vtye of
                EvKey (KChar 'q') [] -> halt s
                _ -> continue s
        _ -> continue s

砖测试.cabal:

cabal-version:      2.4
name:               brick-test
version:            0.1.0.0

author:             AlexScriba
maintainer:         [email protected]

extra-source-files: CHANGELOG.md

executable brick-test
    main-is:          Main.hs
    build-depends:    
      base ^>=4.14.3.0,
      brick >= 1.7,
      vty
    hs-source-dirs:   app
    default-language: Haskell2010

我在不同的项目中再次尝试,但似乎在任何一个项目中都不起作用。也尝试过不同版本的砖。

haskell command-line-interface cabal
1个回答
0
投票

您正在查看过时的文档和示例。查看您正在使用的

brick
版本中的那些。
Next
continue
在 1.0 版本中从
brick
中删除。你现在需要这样的类型来代替
handleEvent
BrickEvent n e -> EventM n AppState ()
。而不是
continue s
,你现在做
return ()

© www.soinside.com 2019 - 2024. All rights reserved.