2017-10-07 40 views
0

我在Material UI中有一個對話框,它在從Web服務中獲取數據時打開一個嵌套的進度對話框。嵌套對話框不是我喜歡的模式,但客戶端。如何在關閉兩者之前關閉父級之前的嵌套Material UI對話框?

如果獲取成功我想關閉進度對話框父對話框。如果提取失敗,我關閉進度對話框,但保持父級打開。

我正在使用Redux,因此在API請求成功完成時設置標誌以關閉兩者。這些標誌最終通過道具傳遞給對話框。

但是,似乎父對話框在嵌套之前呈現,所以它首先消失,緊接着是進度對話框。這有點難看。

我如何在父母面前解僱孩子---或者與父母同時解僱孩子。兩者都可以工作 - 只是不希望孩子在父母關閉時打開。

回答

1

如果父對話框在進度對話框之前關閉,那麼它們不會在相同的渲染週期中卸載,這意味着a)設置標誌由兩個不同的操作觸發,這兩個操作異步運行或b)Material UI對話框關閉一個不同的週期。我不熟悉Material UI,但在第二種情況下,組件中可能有類似onClose的鉤子,您可以使用它來分派一個操作,該操作會取消主對話框的標記。

相關問題