Не могу сделать асинхронность в Flet python
Ищу помощи в реализации асинхронного роутера (маршрутизации) для библиотеки Flet. Код уже написан, и работает в синхронном режиме, но при попытке переписать на асинхронный получаю ошибку.
главный файл main.py:
import flet as ft
from appbar import navbar
from router import Router
async def main(page: ft.Page):
page.appbar = await navbar(page)
myRouter = Router(page)
page.on_route_change = myRouter.route_change
await page.add_async(
myRouter.body
)
await page.go_async('/')
ft.app(target=main)
файл route.py
import flet as ft
# views
from st import statistic
class Router:
def __init__(self, page):
self.page = page
self.ft = ft
self.routes = {
"/statistics": statistic(page),
}
self.body = ft.Container(content=self.routes['/statistics'])
async def route_change(self, route):
self.body.content = self.routes[route.route]
await self.body.update_async()
файл appbar.py
import flet as ft
async def navbar(page):
NavBar = ft.AppBar(
leading=ft.Icon(ft.icons.TAG_FACES_ROUNDED),
leading_width=40,
title=ft.Text("Flet Router"),
center_title=False,
bgcolor=ft.colors.SURFACE_VARIANT,
actions=[
# ft.IconButton(ft.icons.HOME, on_click=lambda _: page.go('/')),
ft.IconButton(ft.icons.TASK_ALT, ),
]
)
return NavBar
файл st.py
import flet as ft
async def statistic(page):
content = ft.Column(
[
ft.Row(
[
ft.Text("Моя статистика", size=30),
ft.IconButton(icon=ft.icons.ANALYTICS, icon_size=30),
],
alignment=ft.MainAxisAlignment.CENTER
),
ft.Row(
[
ft.Text("Раздел моя статистика находится на стадии разработки. В новых обновлениях она появится")
]
),
]
)
return content
при запуске main.py выходит ошибка
Unhandled error processing page session : Traceback (most recent call last):
File "C:\Users\петр морофеев\.virtualenvs\TradeGambleZone-SrsH-SOA\Lib\site-packages\flet_runtime\app.py", line 448, in on_session_created
await session_handler(page)
File "c:\Users\петр морофеев\OneDrive\Документы\project\TradeGambleZone\main.py", line 9, in main
await page.add_async(
File "C:\Users\петр морофеев\.virtualenvs\TradeGambleZone-SrsH-SOA\Lib\site-packages\flet_core\page.py", line 311, in add_async
r = await self.__update_async(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\петр морофеев\.virtualenvs\TradeGambleZone-SrsH-SOA\Lib\site-packages\flet_core\page.py", line 423, in __update_async
commands, added_controls, removed_controls = self.__prepare_update(*controls)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\петр морофеев\.virtualenvs\TradeGambleZone-SrsH-SOA\Lib\site-packages\flet_core\page.py", line 438, in __prepare_update
control.build_update_commands(
File "C:\Users\петр морофеев\.virtualenvs\TradeGambleZone-SrsH-SOA\Lib\site-packages\flet_core\control.py", line 396, in build_update_commands
innerCmds = ctrl._build_add_commands(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\петр морофеев\.virtualenvs\TradeGambleZone-SrsH-SOA\Lib\site-packages\flet_core\control.py", line 451, in _build_add_commands
childCmd = control._build_add_commands(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\петр морофеев\.virtualenvs\TradeGambleZone-SrsH-SOA\Lib\site-packages\flet_core\control.py", line 449, in _build_add_commands
children = self._get_children()
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\петр морофеев\.virtualenvs\TradeGambleZone-SrsH-SOA\Lib\site-packages\flet_core\container.py", line 214, in _get_children
self.__content._set_attr_internal("n", "content")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'coroutine' object has no attribute '_set_attr_internal