Redux-thunk 基础知识

虽然 redux 本身是完全同步的,但你可以使用 redux-thunk 等中间件来处理异步操作。

thunk 是回调的另一个名称。它是一个函数,通常作为参数传递,以便稍后调用。

要使用,请将中间件应用于 redux 商店:

import ReduxThunk from 'redux-thunk';

const store = createStore(
    reducer,
    applyMiddleware(ReduxThunk)
);

这允许你将 thunk 传递给 dispatch 而不是普通对象。中间件将识别 thunk 并调用它。thunk 将商店的 dispatch 方法作为参数:

// an asynchronous action - "thunk"
// This will wait 1 second, and then dispatch the 'INCREMENT' action
const delayedIncrement = dispatch => setTimeout(() => {
    dispatch({
        type: 'INCREMENT'
    });
}, 1000);

// dispatch the thunk. 
// note: no () as we're passing the function itself
store.dispatch(delayedIncrement);