Неделю назад я наконец-то нашел способ разделить свои сообщения по различным категориям ( Вот такой вопрос, где я получил свой ответ )
Теперь я реализовал это решение:
type Msg
= AMsg AMsg
| BMsg BMsg
| CMsg CMsg
и затем я определил AMsg следующим образом
type AMsg
= ActionOne Int String
| ActionTwo Int
Все прекрасно работает, кроме случаев, когда я использую ActionOne с onInput
Html.Event
input [onInput (AMsg (ActionOne model.id))] []
Эта ошибка говорит мне, что onInput нуждается в типе String -> Msg, но получает тип AMsg.
Это будет прекрасно работать, если я, например, использую onClick
, и передам второй аргумент сам
input [onClick (AMsg (ActionOne model.id "hello"))] []
Но так как мне нужно использовать onInput, и именно это передает второй параметр String в ActionOne, я застрял.Если я изменю свои типы, чтобы приспособиться к этому
type Msg
= AMsg AMsg String
| BMsg BMsg
| CMsg CMsg
type AMsg
= ActionOne Int
| ActionTwo Int
Это работает, но затем я заставляю ActionTwo также взять строку, которую я не хочу.
В противном случае я застрял, указав ActionOne непосредственно под Msg
type Msg
= AMsg AMsg
| BMsg BMsg
| CMsg CMsg
| ActionOne Int String
type AMsg
= ActionTwo Int
Мне действительно важно разделить Msgs на разные категории - если я хочу использовать elm для более крупного проекта, это кажется довольно важным длямне.Есть идеи?