选项为
- 听众内部
- 在调度Actions的功能范围内
- 在减速器内
- 在中间件中
答案是:3.减速器内
原因是Redux还原器需要是纯的(或确定性的(函数,如果传递相同的参数,它们总是返回相同的结果。
因此,在reducer内部执行具有副作用的代码是不安全的,因为这意味着reducer的输出不再依赖于输入,还依赖于副作用代码。
从文档中:"归约函数必须总是纯函数";https://redux.js.org/faq/actions#how-可以呈现侧面效果,如-ajax-calls-why-do-we-needs things-like-action-creators-thunks-and-midleware-to-do-async-behavior