我的应用程序是一个简单的文件浏览器,它有三个组件:
当用户创建新文件夹时,文件存储(包含与两个组件相关的所有数据)都会使用服务器响应进行更新并通知组件,并且工作正常。
但我需要触发一个Action,它会将结果中的消息添加到NotificationStore。这应该是一项简单的任务,但我试图长时间这样做,但没有成功。
我越接近解决的是创建一个" store.listen()"在componentDidMount()内部,然后调用我的Action(添加通知消息),这是成功触发的。但它会导致错误:"无法在调度过程中调度"。
存储状态更改后有没有办法调用操作?
更新
另一种方法是将NotificationStore与FileActions绑定,然后使用" waitFor(FileStore.dispatchToken)"然后在商店中设置消息。它可以在这种情况下起作用,但也许不适用于其他情况。
答案 0 :(得分:1)
在需要收听NotificationStore操作的商店中,添加一个监听器:
yDataSent = setdiff(ScopeDataY, yDataBefore, 'stable')
yDataBefore = ScopeDataY;
这将在NotificationActions中的动作sendNotifcation之后在此商店中使用名为onActionSomething的触发器功能。
不要忘记等待来自其他通知的调度员:
this.bindListeners({
onActionSomething: NotificationAction.sendNotifcation
});
数据参数与通知1中的相同