什么';“选择”效应在redux传奇中的作用是什么?
正如redux传奇所描述的那样 旨在使应用程序产生副作用的库。 异步的事情,如数据获取和不纯的事情,如 访问浏览器缓存)更易于管理什么';“选择”效应在redux传奇中的作用是什么?,redux,redux-saga,Redux,Redux Saga,正如redux传奇所描述的那样 旨在使应用程序产生副作用的库。 异步的事情,如数据获取和不纯的事情,如 访问浏览器缓存)更易于管理 select效果仅用于获取当前商店状态的一部分。它根本不会产生任何副作用(无I/O操作、无突变等)。这只是一个纯粹的功能性操作。为什么纯粹的功能性操作被设计成一种效果 因为您的所有传奇代码都不应该直接与商店交互。无论您的传奇需要做什么,无论是发出AJAX调用、分派操作还是其他任何事情,都可以通过生成效果描述并要求中间件为您完成这些工作来完成。您的saga没有直接访问
select
效果仅用于获取当前商店状态的一部分
。它根本不会产生任何副作用(无I/O操作、无突变等)。这只是一个纯粹的功能性操作。为什么纯粹的功能性操作被设计成一种效果 因为您的所有传奇代码都不应该直接与商店交互。无论您的传奇需要做什么,无论是发出AJAX调用、分派操作还是其他任何事情,都可以通过生成效果描述并要求中间件为您完成这些工作来完成。您的saga没有直接访问store来调用dispatch()
,因此也没有理由直接访问getState()
。如果我直接调用store.getState()
,会有什么不良后果?这只是一个只读操作。我不认为直接调用store.getState()有什么不好的。可能有问题,也可能没有问题。问题不是调用store.getState()
,而是如何访问存储本身。通常,存储设置文件会启动根saga,它会导入其他saga文件。通过将商店导入一个saga文件,您创建了一个循环依赖关系,这可能会在应用程序中造成问题。另见。此外,在传奇中调用store.getState()
也没有什么好的理由。你已经得到了select()
效果,它可以工作-只要使用它。“通过将商店导入到一个saga文件中,你就创建了一个循环依赖关系,这可能会在应用程序中造成问题。”这是有道理的。谢谢