Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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
什么';“选择”效应在redux传奇中的作用是什么?_Redux_Redux Saga - Fatal编程技术网

什么';“选择”效应在redux传奇中的作用是什么?

什么';“选择”效应在redux传奇中的作用是什么?,redux,redux-saga,Redux,Redux Saga,正如redux传奇所描述的那样 旨在使应用程序产生副作用的库。 异步的事情,如数据获取和不纯的事情,如 访问浏览器缓存)更易于管理 select效果仅用于获取当前商店状态的一部分。它根本不会产生任何副作用(无I/O操作、无突变等)。这只是一个纯粹的功能性操作。为什么纯粹的功能性操作被设计成一种效果 因为您的所有传奇代码都不应该直接与商店交互。无论您的传奇需要做什么,无论是发出AJAX调用、分派操作还是其他任何事情,都可以通过生成效果描述并要求中间件为您完成这些工作来完成。您的saga没有直接访问

正如redux传奇所描述的那样

旨在使应用程序产生副作用的库。 异步的事情,如数据获取和不纯的事情,如 访问浏览器缓存)更易于管理


select
效果仅用于
获取当前商店状态的一部分
。它根本不会产生任何副作用(无I/O操作、无突变等)。这只是一个纯粹的功能性操作。为什么纯粹的功能性操作被设计成一种效果

因为您的所有传奇代码都不应该直接与商店交互。无论您的传奇需要做什么,无论是发出AJAX调用、分派操作还是其他任何事情,都可以通过生成效果描述并要求中间件为您完成这些工作来完成。您的saga没有直接访问store来调用
dispatch()
,因此也没有理由直接访问
getState()

如果我直接调用
store.getState()
,会有什么不良后果?这只是一个只读操作。我不认为直接调用store.getState()有什么不好的。可能有问题,也可能没有问题。问题不是调用
store.getState()
,而是如何访问存储本身。通常,存储设置文件会启动根saga,它会导入其他saga文件。通过将商店导入一个saga文件,您创建了一个循环依赖关系,这可能会在应用程序中造成问题。另见。此外,在传奇中调用
store.getState()
也没有什么好的理由。你已经得到了
select()
效果,它可以工作-只要使用它。“通过将商店导入到一个saga文件中,你就创建了一个循环依赖关系,这可能会在应用程序中造成问题。”这是有道理的。谢谢