Я пытаюсь добавить подписки, так как у меня есть раскрывающийся список, это помогает автоматически закрывать раскрывающиеся списки, когда вы нажимаете вне их. При этом мне пришлось поменять model
так же, как и мой update
.
Эта ссылка (приведет вас на сайт Boosttrap вяза) - это раскрывающийся список, с которым я работаю и использует Bootstrap 4.
Ошибка, которую я получаю
1-й аргумент sandbox
не тот, который я ожидаю:
295 | Browser.sandbox 296 |> {init = initialModel 297 |>
, update = update 298 |>, view = view 299 |>}
Этот аргумент является записью типа:
{ init : ( Model, Cmd Msg )
, update : Msg -> Model -> ( Model, Cmd Msg )
, view : Model -> Html Msg
}
Но sandbox
нужен 1-й аргумент:
{ init : ( Model, Cmd Msg )
, update : Msg -> ( Model, Cmd Msg ) -> ( Model, Cmd Msg )
, view : ( Model, Cmd Msg ) -> Html Msg
}
Псевдоним Модель
type alias Model =
{ currentNumber : Int, clicks : Int, outputList : List(String), uniqueValues : Dict Int Int, firstNumber : String, secondNumber : String, myDropState : Dropdown.State, items : List String, selectedItem : String, dictKeyToRemove : String,
modalVisibility : Modal.Visibility }
Исходная модель
initialModel : (Model, Cmd Msg)
initialModel =
({ currentNumber = 0, clicks = 0, outputList = [""], uniqueValues = Dict.empty, firstNumber = "", secondNumber = "", myDropState = Dropdown.initialState, items = ["Small", "Medium", "Large"], selectedItem = "Small", dictKeyToRemove = "",
modalVisibility = Modal.hidden }, Cmd.none)
Главная
main : Program () Model Msg
main =
Browser.sandbox
{ init = initialModel
, update = update
, view = view
}
Абонементы
subscriptions : Model -> Sub Msg
subscriptions model =
Sub.batch
[ Dropdown.subscriptions model.myDropState DropMsg ]
Обновление
update : Msg -> Model -> ( Model, Cmd Msg)
update msg model =
case msg of
DropMsg state ->
({model | myDropState = state }, Cmd.none)
Я не уверен, что мне не хватает в данный момент, я попытался изменить аргумент без удачи.