如何在关闭两者之前关闭父级之前的嵌套Material UI对话框?

问题描述:

我在Material UI中有一个对话框,它在从Web服务中获取数据时打开一个嵌套的进度对话框。嵌套对话框不是我喜欢的模式,但客户端。如何在关闭两者之前关闭父级之前的嵌套Material UI对话框?

如果获取成功我想关闭进度对话框父对话框。如果提取失败,我关闭进度对话框,但保持父级打开。

我正在使用Redux,因此在API请求成功完成时设置标志以关闭两者。这些标志最终通过道具传递给对话框。

但是,似乎父对话框在嵌套之前呈现,所以它首先消失,紧接着是进度对话框。这有点难看。

我如何在父母面前解雇孩子---或者与父母同时解雇孩子。两者都可以工作 - 只是不希望孩子在父母关闭时打开。

如果父对话框在进度对话框之前关闭,那么它们不会在相同的渲染周期中卸载,这意味着a)设置标志由两个不同的操作触发,这两个操作异步运行或b)Material UI对话框关闭一个不同的周期。我不熟悉Material UI,但在第二种情况下,组件中可能有类似onClose的钩子,您可以使用它来分派一个操作,该操作会取消主对话框的标记。