Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在存储区中管理参数的流量调用操作_Javascript_Reactjs_Flux - Fatal编程技术网

Javascript 在存储区中管理参数的流量调用操作

Javascript 在存储区中管理参数的流量调用操作,javascript,reactjs,flux,Javascript,Reactjs,Flux,假设我有一个actionsomeAction(params),它接受存储paramsStore中管理的params: paramsStore.listen(function(params) { someAction(params) }) 在我看来,我似乎不能仅仅把它称为,因为很明显,这与不断变化的做事方式背道而驰(不应该在商店侦听器中调用动作) 我之所以在存储侦听器中有someAction,是因为我希望每次修改paramsStore时都调用它。我怎样才能做到这一点而不诉诸于在store

假设我有一个action
someAction(params)
,它接受存储
paramsStore
中管理的
params

paramsStore.listen(function(params) { 
  someAction(params)
}) 
在我看来,我似乎不能仅仅把它称为,因为很明显,这与不断变化的做事方式背道而驰(不应该在商店侦听器中调用动作)


我之所以在存储侦听器中有
someAction
,是因为我希望每次修改
paramsStore
时都调用它。我怎样才能做到这一点而不诉诸于在stores listener中调用操作的“非模式”呢?

虽然我对flux也是新手,但我可以提供一个建议。确定存储区A持有的操作的结果所需的状态可以附加到get方法。此状态可由具有getter的视图检索。调用操作时,此状态可以作为参数发送。如果需要异步,现在可以根据状态在此处执行(ajax调用或其他操作)。然后,可以使用此操作的结果或promise对象来触发传递给dispatcher的操作。调度器将结果或承诺发送到存储。然后,存储更新其状态,并根据需要重复该过程(当触发初始操作时)


我想你需要的细节会对你有所帮助。我确实相信,在商店里倾听一个动作并触发另一个动作与流量并不一致。我确实认为有可能通过使用flux实现您想要的实际结果,但没有更多细节,这是我能想到的最好方法。而且,在现实中,你可以实现你想要的任何东西。Flux只是一个模型,扩展而言,它是一个自我施加的约束,有助于构建结构。

如果您按原样使用Flux,您可以参考整个体系结构的原始图像

正如您所见,不仅视图可以创建操作。还有一些Web API UTIL可以创建这些UTIL。一般来说,不仅API UTIL可以做到这一点。完全可以根据外部世界、一些服务或其他东西来创建一些行为

但在您的情况下,您正试图在某个存储更新侦听器上创建一个操作。据我所知,这将导致一家或几家其他商店发生一些变化。在这种情况下,您可能不需要在侦听器中创建操作,而是使用WaitForAPI在存储之间创建一些关系。这里有一个包含详细信息的链接:。

正确的“流量方式”是调用
someAction(params)
,只要信息发送到
paramsStore

了解
someAction
所做的事情会让你更清楚。它真的需要成为一种行动吗?如果您只是在存储数据中执行一些操作,那么可以将其作为
paramStore
中的本地方法