Новичок в Elm, поэтому я могу упустить что-то очевидное.
Я работаю над приложением Elm, которое использует annaghi / dnd-list . Я сталкиваюсь с бесконечным l oop обращений к обновлению. Это происходит при нажатии на один элемент, а затем на другой. Вот код:
config : DnDList.Config Player
config =
{ beforeUpdate = \_ _ list -> list
, movement = DnDList.Free
, listen = DnDList.OnDrag
, operation = DnDList.Swap
}
system : DnDList.System Player Msg
system =
DnDList.create config DndMsg
type alias Model =
{ navKey : Nav.Key
, room : WebData Room
, dnd : DnDList.Model
, startError : Maybe String
}
type Msg
= RoomReceived (WebData Room)
| DndMsg DnDList.Msg
...
update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
case msg of
RoomReceived room ->
( { model | room = room }, Cmd.none )
DndMsg message ->
let
room = model.room
in
case room of
RemoteData.Success actualRoom ->
let
( dnd, players ) =
system.update message model.dnd actualRoom.players
updatedRoom = RemoteData.map
(\roomData ->
{ roomData | players = players }
) room
in
( { model | dnd = dnd, room = updatedRoom }
, system.commands model.dnd
)
_ ->
( model, Cmd.none )
Когда я изменяю строку system.commands model.dnd
на Cmd.none
, то нет никакого бесконечного цикла вызова функции обновления, но также ничего не происходит. Сообщение, которое продолжает вызываться в библиотеке dnd-list: GotDropElement (Ok dropElement)
Опять же, новость для Elm, так что это может быть плохо сформированный вопрос, но любая помощь приветствуется.
Спасибо !