使用' case'通过Signal.Address Action

时间:2015-12-10 16:11:13

标签: elm

我有以下类型的动作:

type Action = ActionA A.SubAction | ActionB B.SubAction

其中A和B有两种不同的类型,每种类型都有一个SubAction类型。

我想使用' case'来实现一种方法。根据地址参数的类型执行操作。

view : Signal.Address Action -> Html
view address =
    case address of
        Signal.Address (ActionA action_a) ->
            ...
        Signal.Address (ActionB action_a) ->
            ...

不幸的是,我收到以下错误:

Cannot find pattern `Signal.Address`.
The qualifier `Signal` is not in scope.

有人可以帮我看看我做错了吗?

1 个答案:

答案 0 :(得分:1)

您无法使用case语句将Action拉出地址参数。 signature of Address

type Address a =
    Address (a -> Task () ())

如果您的view功能需要知道上次执行的操作,您可能最好在lastAction : Action上添加Model字段,然后在{{ 1}}。