gpt4 book ai didi

javascript - React redux 的 #applyMiddleware 如何通过返回 #createStore 而不是 store 来确保中间件仅应用一次?

转载 作者:行者123 更新时间:2023-11-27 22:37:50 25 4
gpt4 key购买 nike

更改后的签名如何阻止您多次应用中间件?它返回一个新的#createStore,但是这个方法可以在另一个#applyMiddleware中再次用作参数,就像可以再次使用store一样,从而导致重复的中间件。

To ensure that you may only apply middleware once, it operates on createStore() rather than on store itself. Instead of (store, middlewares) => store, its signature is (...middlewares) => (createStore) => createStore.

最佳答案

问得好!我也不太明白这是如何明显的,但我认为它的工作原理大致如下:

  1. applyMiddleware()正如您所指出的,接受 createStore() 函数。每次调用 applyMiddleware() 时都会调用 createStore()。因此,每次运行都会有一个新商店。
  2. createStore()接受专门的增强器,这些增强器是添加到商店实例上的东西。像 applyMiddleware() 会提供的东西。
  3. 如果给 createStore() 赋予了增强器,它会(间接)递归调用 createStore() ,而无需任何增强器。因此,使用此增强器仅应用一次。

我认为多次应用中间件的唯一方法是实现您自己的 createStore() 版本。但此时您可能会得到循环引用。

关于javascript - React redux 的 #applyMiddleware 如何通过返回 #createStore 而不是 store 来确保中间件仅应用一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38964680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com