在一个使用Redux管理其状态的应用程序中,在哪里执行带有副作用的代码是不安全的,比如 AJAX 调用?

js5cn81o  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(88)

选项包括
1.在监听程序内
1.在分派操作的函数内
1.异径管内
1.在中间件中

pbgvytdp

pbgvytdp1#

答案是:3.减速器内
原因是Redux reducer需要是纯(或确定性)函数,如果传递相同的参数,则总是返回相同的结果。
因此,在reducer中执行带有副作用的代码是不安全的,因为这意味着reducer的输出不再仅仅依赖于输入,而且还依赖于副作用代码。
从文档中:“减速器函数必须始终是纯函数”https://redux.js.org/faq/actions#how-can-i-represent-side-effects-such-as-ajax-calls-why-do-we-need-things-like-action-creators-thunks-and-middleware-to-do-async-behavior

相关问题