Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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 使用useSelector和useDispatch的Redux钩子-为什么要使用这个?_Javascript_Reactjs_Redux_React Redux_React Hooks - Fatal编程技术网

Javascript 使用useSelector和useDispatch的Redux钩子-为什么要使用这个?

Javascript 使用useSelector和useDispatch的Redux钩子-为什么要使用这个?,javascript,reactjs,redux,react-redux,react-hooks,Javascript,Reactjs,Redux,React Redux,React Hooks,我刚刚转换了一个react组件,该组件有一个单独的“容器”文件,其中包含mapStateToProps/mapDispatchToProps connect包装器实现 现在,我的GUI组件混合了特定于redux的功能,如useSelector和useDispatch。现在没有道具被传递进来 这似乎是最糟糕的设计模式。在此之前,GUI组件是道具的功能,不管它们是来自redux还是来自父控件 易于测试,并且非常清楚组件所依赖的属性 这一切都消失了 有人能想到使用redux钩子的一个好处吗?也许我错过

我刚刚转换了一个react组件,该组件有一个单独的“容器”文件,其中包含mapStateToProps/mapDispatchToProps connect包装器实现

现在,我的GUI组件混合了特定于redux的功能,如useSelector和useDispatch。现在没有道具被传递进来

这似乎是最糟糕的设计模式。在此之前,GUI组件是道具的功能,不管它们是来自redux还是来自父控件

易于测试,并且非常清楚组件所依赖的属性

这一切都消失了

有人能想到使用redux钩子的一个好处吗?也许我错过了什么


谢谢

唯一的好处是你不必一直把这些道具从父母那里传给孩子。说真的,这是唯一的好处。因此,如果它能工作,就不要重构任何东西来使用钩子,除非你有认真的理由这样做。

即使使用钩子语法,你仍然可以做两个组件:一个是连接的,另一个是接收其道具中的所有内容(并且可以更容易地测试)。这只是一种新的语法,您不必在同一个组件中混合所有内容

钩子的主要优点是可以编写自定义钩子。当你所做的事情没有意义时,优势很小