flet-dev / examples

Flet sample applications
MIT License
423 stars 172 forks source link

page.dialog is not working #92

Open Pranzal360 opened 10 months ago

Pranzal360 commented 10 months ago

I was working with this file and i tried to run it in my system, when ever the website load, the dialog box doesn't appears. but it works after the second execution. Let me make it simple for you to understand let me start with: i run the code and it opens in the browser but the dialog box doesn't appears, now i don't close the tab where it is opened and now i stop the code and run it again, this time too it opens in another tab, this time too dialog box doesn't appears on the second tab but it opens in the previously opened tab.

image image

the tab on first image was opened during second execution where page.dialog doesn't opens the tab on the second image was opened during first execution where initially page.dialog didn't open but after second execution (without closing the tab ) page.dialog opened.

barantt commented 7 months ago

Yes, I also encountered this problem in the chat demo but it does work with this demo code alertdialog

ndonkoHenri commented 7 months ago

Hey @barantt, @Pranzal360, could you please attach some code to reproduce the issue?

Pranzal360 commented 7 months ago

i used the code from flet examples and the dialog box doesn't opens, i forgot how i got that error in the original issue but this code also doesn't works, image

if further info is required please feel free to mention, sorry for late response !

macill0 commented 2 weeks ago

Hey, I'm a little late on this, but has anyone figured out what the problem was? I'm currently encountering the same issue!

macill0 commented 2 weeks ago

UPDATE: I found my issue. I'm no longer sure if I had the same one...

My problem (from my understanding) was that I initialized my page wrong. I added an AlertDialog to the page without adding something else. Then I switched with the router to another page.view component. And tried to show another dialog with page.show_diaog(dialog)

wrong code:

def main(page: ft.Page) -> None:
    """
    Entry point of application
    """ 

    page.title = "Notes App"
    page.adaptive = True

    if not page.client_storage.contains_key(StorageKeys.BASE_PATH.value): 
        alert_set_path: ft.AlertDialog = AlertDialogSetBasePath(page=page).build()
        page.add(alert_set_path)
        page.show_dialog(alert_set_path)

    while True:

SOLUTION:

  1. Initialize your page better ;)
  2. Quick and dirty: use page.clean() or page.controls.clean after you no longer need the dialog
ndonkoHenri commented 2 weeks ago

The tutorials have been updated, please give another try.