После аутентификации пользователя на сервере, сервер отправляет пользователю ответ, в теле которого Control (Flet), в данном случае ElevatedButton,
к клиенту приходит ответ, методом json() я извлекаю список, первым элементом строка, указывающая на тип Control, второй элемент сам Control.
На сервере ответ выглядит следующим образом - return ["ebutton", ElevatedButton(width=140, height=30, bgcolor='#2b334a', elevation=0, content=Row(spacing=2, controls=[Icon(name), Text(value)]))]
Ответ, приходящий клиенту, оставил ниже(обрезал его, слишком большой)
я кое как попробовал, но получил ошибку, все прикрепил внизу.
Ответ, который получает клиент.
{'_Control__page': None, '_Control__attrs': {'width': [140, True], 'height': [30, True], 'bgcolor': ['#2b334a', True]}, '_Control__previous_children': [], '_Control__uid': None, '_Control__expand': None, '_Control__col': None, '_Control__data': None, '_Control__event_handlers': {'animation_end': None, 'click': None, 'long_press': None, 'hover': None, 'focus': None, 'blur': None}, 'parent': None, '_ConstrainedControl__scale': None, '_ConstrainedControl__rotate': None, '_ConstrainedControl__offset': None, '_ConstrainedControl__animate_opacity': None, '_ConstrainedControl__animate_size': None, '_ConstrainedControl__animate_position': None, '_ConstrainedControl__animate_rotation': None, '_ConstrainedControl__animate_scale': None, '_ConstrainedControl__animate_offset': None, '_ElevatedButton__color': None, ...
Я попробовал так:
response = await core.get_advanced_method(self._token, self.link)
self.screen.content.controls[0].content = ElevatedButton(**response[1])
self.page.update()
Ошибка, которую я получил:
TypeError: ElevatedButton.__init__() got an unexpected keyword argument '_Control__page'
Я понимаю, что эта ошибка значит, но я не понимаю почему сервер отправляет словарь, который нельзя применять к новому Control.