代码之家  ›  专栏  ›  技术社区  ›  Peter Alfvin

Thunks未出现在React Native调试器的操作列表中

  •  1
  • Peter Alfvin  · 技术社区  · 7 年前

    redux-thunk . 首先,我们将“常规”操作对象用于异步操作,我们的中间件对此进行了解释。在这种情况下,可以理解我们的操作出现在react本机调试器的操作列表中。

    然而,在最近的一个项目中,我注意到我们的thunks做到了 在调试器中显示为操作,提示以下问题:

    2) 如果是这样,人们会觉得这不是问题吗? 3) 其他异步操作库是否也有相同的问题?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Aaron    7 年前

    export const gotSomething = data => {
      return {
        type: GOT_SOMETHING,
        data,
      };
    };
    
    export const getSomething = () => { // <-- This is our thunk!
      return async dispatch => {
        const { data } = await axios.get('/something');
        dispatch(gotSomething(data)); <-- This is the only thing being dispatched
      };
    };
    

    所以顺序是这样的:

    1. Redux(或者更确切地说是thunk中间件)将检查您“调度”的对象是否返回对象或函数。
    2. 如果是函数,则调用该函数并向该函数提供分派
    3. 该函数分派一些操作(实际分派的对象)

    因此,尽管从技术上讲,您是在thunk上“调用dispatch”,但实际上您只是在thunk返回的函数内部调度操作。我希望这有帮助!

    推荐文章