У меня есть URL-адрес /user/3
, где я делаю http-запрос, чтобы получить информацию о пользователе.ELM-LANG, как сделать http-запрос при нажатии на кнопку назад браузера
Если я перехожу на /user/6
, я сделаю еще один http-запрос, чтобы получить данные этого пользователя.
Моя проблема в том, что когда я нажимаю на кнопку браузера, URL-адрес возвращается к /user/3
, но он по-прежнему пользователь 6 информация, отображаемая.
Как это сделать? Можно ли вернуть мою старую модель? Или мне нужно снова сделать http-запрос, чтобы получить пользователь 3.
Мой urlUpdate
выглядит следующим образом:
urlUpdate : Result String Route -> Model -> (Model, Cmd Msg)
urlUpdate result model =
let
currentRoute =
Routing.routeFromResult result
in
({ model | route = currentRoute }, Cmd.none)
Я немного потерял, я не знаю, где это сделать.
Если не ясно, я хотел бы «поймать» событие, когда пользователь нажимает кнопку «Назад» браузера, чтобы получить старый URL-адрес, а затем сделать http-запрос, чтобы снова получить эту информацию пользователя.
Я пользуюсь пакетом elm-navigation
.
Я пытаюсь сделать это в моем urlUpdate
:
urlUpdate : Result String Route -> Model -> (Model, Cmd Msg)
urlUpdate result model =
let
currentRoute =
Routing.routeFromResult result
command =
case currentRoute of
Routing.HomeRoute ->
getUsers
Routing.userRoute id ->
getUser id
Routing.NotFoundRoute ->
Cmd.none
in
({ model | route = currentRoute }, command)
что то же самое, что моя функция инициализации. Это не работает, потому что он делает бесконечный цикл исполнением urlUpdate
Какой пакет маршрутизации вы используете? –
я использую вязание навигация. Я обновляю свой вопрос – BoumTAC