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 React子组件直接调用flux应用程序中的操作-错误做法?_Javascript_Reactjs_Flux - Fatal编程技术网

Javascript React子组件直接调用flux应用程序中的操作-错误做法?

Javascript React子组件直接调用flux应用程序中的操作-错误做法?,javascript,reactjs,flux,Javascript,Reactjs,Flux,我是一个JS新手,从头开始开发flux应用程序 当前,根组件具有动作实例,子组件被分配了调用动作的事件处理程序。较深的子代被分配了最终到达操作的处理程序,但这使我不愿意维护回调流 我制作了一个静态解析器,以提供对以下操作的访问: var action = Resolver.resolveAction(); // Returns singleton action 通过这种方式,子组件可以直接调用操作并通过共享调度程序发出。只有根组件正在侦听存储和刷新整个组件树 我想这并没有偏离通量的方式,尽管没

我是一个JS新手,从头开始开发flux应用程序

当前,根组件具有动作实例,子组件被分配了调用动作的事件处理程序。较深的子代被分配了最终到达操作的处理程序,但这使我不愿意维护回调流

我制作了一个静态解析器,以提供对以下操作的访问:

var action = Resolver.resolveAction(); // Returns singleton action
通过这种方式,子组件可以直接调用操作并通过共享调度程序发出。只有根组件正在侦听存储和刷新整个组件树


我想这并没有偏离通量的方式,尽管没有多少信心。这是一种不好的做法还是其他选择?

您描述的第一个操作应该被表示为操作创建者。这是在触发事件处理程序时触发的事件。我认为您的问题是,您应该如何处理从动作创建者返回的数据

在这种情况下,您将编写另一个操作,以接收该响应并向调度器发送。然后,调度器将其发送到适当的存储,该存储将向所有侦听的组件发出更改。当存储发出时,它将“刷新整个组件树”(假设您有存储侦听器和状态侦听这些更改)


这只是一种不断变化的方式,允许您没有回调树——这是一种不好的做法。

您描述的第一个动作应该表示为动作创建者。这是在触发事件处理程序时触发的事件。我认为您的问题是,您应该如何处理从动作创建者返回的数据

在这种情况下,您将编写另一个操作,以接收该响应并向调度器发送。然后,调度器将其发送到适当的存储,该存储将向所有侦听的组件发出更改。当存储发出时,它将“刷新整个组件树”(假设您有存储侦听器和状态侦听这些更改)

这只是一种流量方式,允许您没有回调树——这是一种糟糕的做法