在 NGXS 操作中调用后尝试关闭材料小吃吧不起作用
Posted
技术标签:
【中文标题】在 NGXS 操作中调用后尝试关闭材料小吃吧不起作用【英文标题】:Trying to close a material snackbar after being called in a NGXS action does not work 【发布时间】:2019-09-04 04:37:15 【问题描述】:在我通过 NGXS 操作调用小吃店后,小吃店不会关闭。仅在指定的毫秒后,但不是从关闭“动作”开始
我尝试使用'action'参数关闭它,'ref.close()'方法都不起作用。
但是,如果我在不使用 NGXS 操作的情况下从组件中正常调用它,它会像预期的那样关闭。
NGXS 行动
单击“关闭”不起作用。它保持打开状态。
但是,如果我单击关闭,然后单击其他不是按钮的地方,它会立即关闭
@Action(SomeAction)
someAction(
setState, getState : StateContext<SomeModel>,
payload : SomeAction
)
...
if (payload.data.amount < 1000)
...
else
this.snackbar.open('Error', 'Close',
duration: 4000
);
return;
组件正常调用
点击“关闭”按预期工作
test()
this.snackbar.open('test', 'Close',
duration: 4000
);
【问题讨论】:
【参考方案1】:之前遇到过这种情况 - 只需订阅调度(调度更新状态时返回),然后做小吃吧。
【讨论】:
【参考方案2】:NGXS 在 NgZone 之外运行。要解决这个问题:
constructor(
private readonly snackBar: MatSnackBar,
private zone: NgZone,
)
this.zone.run(() =>
this.snackBar.open(...);
);
【讨论】:
以上是关于在 NGXS 操作中调用后尝试关闭材料小吃吧不起作用的主要内容,如果未能解决你的问题,请参考以下文章
使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作