Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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_Events_Reactjs_Reactjs Flux - Fatal编程技术网

Javascript 反应组件同级事件观看-我是否以最佳方式观看?

Javascript 反应组件同级事件观看-我是否以最佳方式观看?,javascript,events,reactjs,reactjs-flux,Javascript,Events,Reactjs,Reactjs Flux,我是个新来的反应者,我的头脑仍然在不断变化。我个人的Hello World项目是一个时间跟踪/计费应用程序,基本上是一个美化的秒表,我被卡住了 本质上,有一个包含多个子元素的组件。启动任务将创建存储在任务组件状态中的时间间隔,用于更新已用时间显示。可以启动、停止和恢复任务,但不应同时运行两个任务。启动/恢复任务应停止当前正在运行的任何其他任务 我的问题是,当新任务启动时,如何指示正在运行的任务停止 在我的任务组件的组件Dead Mead方法中,它们侦听由其他任务触发的启动事件,如果其中一个被释放

我是个新来的反应者,我的头脑仍然在不断变化。我个人的Hello World项目是一个时间跟踪/计费应用程序,基本上是一个美化的秒表,我被卡住了

本质上,有一个包含多个子元素的组件。启动任务将创建存储在任务组件状态中的时间间隔,用于更新已用时间显示。可以启动、停止和恢复任务,但不应同时运行两个任务。启动/恢复任务应停止当前正在运行的任何其他任务

我的问题是,当新任务启动时,如何指示正在运行的任务停止

在我的任务组件的组件Dead Mead方法中,它们侦听由其他任务触发的启动事件,如果其中一个被释放,则启动并运行它们自己的停止函数,但我似乎发现了错误:UnrError错误:不变量违例:Debug…调度……:不能在调度的中间发送…

我会粘贴我的代码,但我的直觉告诉我,我在这方面完全错了,我的代码是无关紧要的

我是否应该停止存储中的其他任务,而不是停止组件中的其他任务?这是有道理的,但我该如何清理与每个任务相关的时间间隔呢


我本来希望橡皮垫能帮上忙的,但事实并非如此。

除了设置一个全局事件系统,根据另一个计时器正在执行的操作来停止和启动每个计时器之外,因为它们不共享相同的状态,您可能不想查看此文档


然而,这种方式有点糟糕,我建议让生成子组件状态的父组件管理子组件的启动和停止方式。子组件将有一个onClick={this.props.parentClickEvent},它应该告诉父组件启动和停止计时器等。。。如果需要知道具体单击了哪个元素,那么您需要查看bind函数,该函数能够将该值传递给父元素

流量方法是将所有任务保存在一个存储中。我会怎么做:

每个任务都有一个状态:“正在运行”或“空闲”,并以秒为单位显示elapsedTime。无论何时从视图启动任务,都会调用ActionCreator。此操作创建者分派以任务id作为有效负载启动的任务。商店的调度处理程序侦听此操作,并处理哪些任务现在应该运行或空闲。然后,存储发出更改事件,视图会自动更新


间隔可以更好地存在于任务视图中,子视图:TaskClockView,使用新任务时间每隔一秒创建一个操作。存储将更新自身,然后更新视图

重新阅读React文档中的where Do your state live部分,以及您的答案,在这方面确实帮助了我。“我的存储”现在记录任务状态是否正在运行,然后组件从父级接收道具时更新时钟,以说明当前运行的任务是否存在。