使用 'case' 而不是 Signal.Address 操作
Use 'case' over Signal.Address Action
我有以下类型的操作:
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.
谁能帮我看看我做错了什么?
您将无法使用 case 语句从地址参数中提取 Action
。 signature of Address
是
type Address a =
Address (a -> Task () ())
如果您的 view
函数需要知道最后执行了哪个操作,您最好在 Model
上添加一个 lastAction : Action
字段,然后在 update
.
我有以下类型的操作:
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.
谁能帮我看看我做错了什么?
您将无法使用 case 语句从地址参数中提取 Action
。 signature of Address
是
type Address a =
Address (a -> Task () ())
如果您的 view
函数需要知道最后执行了哪个操作,您最好在 Model
上添加一个 lastAction : Action
字段,然后在 update
.