Size: a a a

Elm Lang сообщество разработчиков

2020 December 26

DP

Daniil Prohorov in Elm Lang сообщество разработчиков
так а в чем проблема, onInput : (String -> Msg) -> Atribute Msg, т.е. можно просто передать туда функцию, которая возвращает Msg, ну или лямбду сделать, типа
(\s -> case s of
   ptrn1 -> Prev
   ptrn2 -> Next
   ptrn3 ->
... )
источник

DP

Daniil Prohorov in Elm Lang сообщество разработчиков
Max P
Привет, подскажите:
type Msg
   = Prev
   | Next
   | PageChanged String


update : Msg -> State -> State
update msg (State internal) =
   case msg of
       Prev ->
           State { current = internal.current - 1, total = 10 }

       Next ->
           State { current = internal.current + 1, total = 10 }

       PageChanged str ->
           State { current = 10, total = 10 }


view : (State -> msg) -> State -> Html msg
view toMsg (State internal) =
   div []
       [ button [ onClick <| toMsg (update Prev (State internal)) ] [ text "<" ]
       , span [] [ text " " ]
       , input
           [ type_ "text"
           , value <| String.fromInt internal.current

           -- onInput PageChanged
           ]
           []
       , span [] [ text " / " ]
       , span [] [ text (String.fromInt internal.total) ]
       , span [] [ text " " ]
       , button [ onClick <| toMsg (update Next (State internal)) ] [ text ">" ]
       ]


как в onInput правильно передать обработчик? (могу попозже репозиторий приготовить с примером, если по коду непонятно)
источник

MP

Max P in Elm Lang сообщество разработчиков
Daniil Prohorov
так а в чем проблема, onInput : (String -> Msg) -> Atribute Msg, т.е. можно просто передать туда функцию, которая возвращает Msg, ну или лямбду сделать, типа
(\s -> case s of
   ptrn1 -> Prev
   ptrn2 -> Next
   ptrn3 ->
... )
Проблема в том, что я не совсем понимаю что вы пишете :) мне бы посмотреть решение , может додумаю
источник

MP

Max P in Elm Lang сообщество разработчиков
Я могу репо скинуть минут через 30
источник

DP

Daniil Prohorov in Elm Lang сообщество разработчиков
ну вам надо обработать действие, при изменении поле input, так?
источник

DP

Daniil Prohorov in Elm Lang сообщество разработчиков
соответственно мы должны в поле onInput передать функцию, которая на вход принимает String , а возвращает Msg
источник

MP

Max P in Elm Lang сообщество разработчиков
Daniil Prohorov
ну вам надо обработать действие, при изменении поле input, так?
ага

вот пример https://github.com/maxfarseer/pagination-example на create-elm-app

я хочу чтобы в Main приходил “внутренний стейт” из Pagination. Клик по prev/next ок, а вот как инпут еще обрабатывать - не пойму
источник

DP

Daniil Prohorov in Elm Lang сообщество разработчиков
так мы из onInput вовзращаем Msg, а потом в функции update уже из Msg достаем и кладем в State
источник

DP

Daniil Prohorov in Elm Lang сообщество разработчиков
и тогда уже в view у нас приходит этот State
источник

MP

Max P in Elm Lang сообщество разработчиков
Daniil Prohorov
так мы из onInput вовзращаем Msg, а потом в функции update уже из Msg достаем и кладем в State
я не могу сообразить как это написать)
источник

DP

Daniil Prohorov in Elm Lang сообщество разработчиков

onInput = (\s -> PageChanged s)
источник

DP

Daniil Prohorov in Elm Lang сообщество разработчиков
и теперь
источник

DP

Daniil Prohorov in Elm Lang сообщество разработчиков
обрабатываете PageChanged в update
источник

MP

Max P in Elm Lang сообщество разработчиков
Daniil Prohorov

onInput = (\s -> PageChanged s)
супер! Дошло) спасибо
источник

DP

Daniil Prohorov in Elm Lang сообщество разработчиков
отлично
источник
2020 December 28

AD

Alex Dionysus in Elm Lang сообщество разработчиков
Хай, ребят а что у нас с работой на elm? Я на своей работе как не пытался не смог продать его.
источник

AY

Alexey Yurchenko in Elm Lang сообщество разработчиков
Alex Dionysus
Хай, ребят а что у нас с работой на elm? Я на своей работе как не пытался не смог продать его.
Мы только мироштуки пилим на 2-5к строк, которые в принципе постоянно переписываюся, пофиг на чем
источник

AY

Alexey Yurchenko in Elm Lang сообщество разработчиков
Глобально на больших приложениях я хотел миксануть react+ts+elm, но не решился, кадров потом не найти, а переписать нереально.
источник

MP

Max P in Elm Lang сообщество разработчиков
Alex Dionysus
Хай, ребят а что у нас с работой на elm? Я на своей работе как не пытался не смог продать его.
elm slack #jobs живет потихоньку
источник

DP

Daniil Prohorov in Elm Lang сообщество разработчиков
Не очень понимаю как реализовать что-то большое на элме, потому что ворочить контекст на 3 страницы я уже устал как-то
источник