Я не могу наблюдать за навигацией по страницам.
Команда:
member x.AddBankcard = DelegateCommand( (fun _ -> async { do! navigate()
} |> Async.RunSynchronously
|> ignore ) ,
fun _ -> true) :> ICommand
Опубликовать запрос навигации:
let navigate() =
account
|> PageRequest.AddBankcard
|> broadcastToAsync pageRequesthandlers
Уведомить подписчиков запроса:
let broadcastToAsync<'a> (handlers:(list<'a -> Async<unit>>)) (msg:'a) : Async<unit> =
async { handlers |> List.map (fun handle -> async { do! handle msg }) |> ignore }
Ручка навигации:
let handle = function
| PageRequest.AddBankcard _ ->
page |> function
| :? UI.AddBankcard as pageRequest ->
...
async { do! navigationPage.PushAsync(pageRequest) |> Async.AwaitTask }
| _ -> async { () }
| _ -> async { () }
Примечание:
Нет навигации по страницам.
Я не получаю никаких исключений.
Я не вижу никаких подсказок в окне вывода
Мои догадкия не правильно использую async.
async {do!navigationPage.PushAsync (pageRequest) |> Async.AwaitTask}
ОБНОВЛЕНО:
Я также попробовал следующее:
let navigationPage = (app:?>Application).MainPage:?>NavigationPage
let navigate () = async {
do! navigationPage.PushAsync(pageRequest) |> awaitTask
}
navigate() |> Async.RunSynchronously |> ignore
Вот исходный код